2012-02-23 12 views
0

開発と配備中にhttpとhttpsを切り替える必要があります。配備中に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> 

だから私はWeb.Release.configに以下の行を追加しよう::、私は、web.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> 

しかし、私はファイルシステムにサービスを公開するときにweb.configの開発用httpバージョンが表示されるので間違っています。 何か助けていただければ幸いです。

答えて

8

xdt:Transformの値をSetAttributesに変更してください。名前属性がないのでxdt:Locatorを削除してください。

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

「SetAttributes」ではなく「setAttributes」を使用してもう一度間違いを犯しました。 – YoYoMyo

+0

大文字と小文字が区別されます。私は自分の答えを更新しました。 – jrummell

+0

web.configにブロックを追加する方法を知っていますか?私はInsertAfterを試しました...しかし、私の構文が間違っていると思います。 – YoYoMyo

関連する問題