Visual Studio «Добавить ссылку на службу» продолжает добавлять «extendedProtectionPolicy» в мой файл конфигурации - PullRequest
4 голосов
/ 14 июля 2010

Когда я добавляю ссылку на службу в Visual Studio в службу, она продолжает добавлять эту extendedProtectionPolicy к моим привязкам безопасности, что на моей машине с Win7 работает нормально.Но при развертывании на Server 2003 выдает ошибку, говоря о нераспознанном элементе в файле конфигурации.

Удаление строки <extendedProtectionPolicy policyEnforcement="Never" /> исправляет ошибку.

Это полная часть созданного нежелательного файла web.config.после добавления ссылки на службу (на стороне клиента)

<security mode="TransportWithMessageCredential">
    <transport clientCredentialType="None" proxyCredentialType="None"
        realm="">
        <extendedProtectionPolicy policyEnforcement="Never" />
    </transport>
    <message clientCredentialType="UserName" algorithmSuite="Default" />
</security>

Вот поведение, которое использует моя служба (на стороне iis7)

<behavior name="GetHttpsIncludeFaults">
  <serviceCredentials>
    <userNameAuthentication 
      userNamePasswordValidationMode="Custom" 
      customUserNamePasswordValidatorType="MyCustomValidator, MyOtherAssembly"/>
  </serviceCredentials>
  <serviceMetadata httpsGetEnabled="true" />
  <serviceDebug includeExceptionDetailInFaults="true" />
</behavior>

Я хотел бы отметить нескольковещи.Это происходит как в VS2010, так и в VS2008.Это происходит в потребительских проектах ASP.NET-MVC, как AS WELL AS Windows Service / WPF Application.

1 Ответ

3 голосов
/ 14 июля 2010

Насколько я могу судить по информации, найденной в Интернете и в Microsoft Connect, более конкретно, это известная проблема, которая еще не устранена.

Вы можете обойти эту проблему, используя ConfigФункция преобразования в Visual Studio 2010. Преобразование конфигурации - очень полезная функция, которая позволяет автоматически изменять содержимое (например, строки подключения) файлов конфигурации при развертывании приложения.

К сожалению, в настоящее время преобразование конфигурацииподдерживаются только для файлов web.config. В этом посте объясняется, как использовать преобразования Config для файлов app.config.

Следующее преобразование должно решить вашу проблему:

<?xml version="1.0"?>
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding>
          <security>
            <transport>
               <extendedProtectionPolicy xdt:Transform="Remove" />
            </transport>
        </binding>
      </netTcpBinding>
    </bindings>
  </system.serviceModel>
</configuration>

Как видите,при развертывании приложения удаляется узел <extendedProtectionPolicy/>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...