2012-02-23 3 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

값을 SetAttributes으로 변경하십시오. 이름 속성이 없으므로 xdt:Locator을 삭제하십시오.

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

"SetAttributes"대신 "setAttributes"를 사용하여 한 번 더 실수했습니다. – YoYoMyo

+0

대소 문자를 구분합니다. 나는 나의 대답을 업데이트했다. – jrummell

+0

web.config에 블록을 추가하는 방법을 알고 계십니까? InsertAfter 시도 ...하지만 내 구문이 잘못되었다고 생각합니다. – YoYoMyo

관련 문제