Изменить web.config во время развертывания - PullRequest
0 голосов
/ 24 февраля 2012

Мне нужно переключаться между 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:

<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>

Но я делаю это неправильно, потому что, когда я публикую сервис в моей файловой системе, я все еще вижу версию http.config для разработчиков. Любая помощь приветствуется.

1 Ответ

8 голосов
/ 24 февраля 2012

Измените значение xdt:Transform на SetAttributes.И удалите xdt:Locator, так как атрибут имени отсутствует.

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