2012-02-23 6 views
0

Je dois basculer entre http et https pendant le développement et le déploiement.Modifier web.config pendant le déploiement

Pour ce faire, je dois apporter les modifications suivantes dans web.config:

<behaviors> 
    <serviceBehaviors> 
    <behavior name="DirectInstallHelperServiceBehavior"> 
     <!-- need to change to <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"> --> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"> 
     </serviceMetadata> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

<bindings> 
    <webHttpBinding> 
    <binding> 
<!-- need to add the following, but don't know how 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic"/> 
     </security> 
--> 
    </binding> 
    </webHttpBinding> 
</bindings> 

J'essaie d'ajouter les lignes suivantes dans Web.Release.config:

<behaviors> 
    <serviceBehaviors> 
    <behavior name="DirectInstallHelperServiceBehavior"> 
     <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" xdt:Transform="setAttribute(httpsGetEnabled, httpGetEnabled)" xdt:Locator="Match(name)"></serviceMetadata> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

<bindings> 
    <webHttpBinding> 
    <binding> 
     <security mode="Transport" xdt:Transform="InsertAfter(/configuration/system.serviceModel/bindings/webHttpBinding/binding)"> 
     <transport clientCredentialType="Basic"/> 
     </security> 
    </binding> 
    </webHttpBinding> 
</bindings> 

Mais Je le fais mal parce que quand je publie le service sur mon système de fichiers, je vois toujours la version http de développement de web.config. Toute aide est appréciée.

Répondre

8

Modifiez la valeur xdt:Transform en SetAttributes. Et supprimez xdt:Locator puisqu'il n'y a pas d'attribut de nom.

<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" xdt:Transform="SetAttributes"></serviceMetadata> 
+0

J'ai encore fait une erreur en utilisant "setAttributes" au lieu de "SetAttributes". – YoYoMyo

+0

Droite, sensible à la casse. J'ai mis à jour ma réponse. – jrummell

+0

Savez-vous comment ajouter un bloc à web.config? J'ai essayé InsertAfter ... mais je pense que ma syntaxe est fausse. – YoYoMyo

Questions connexes