代码之家  ›  专栏  ›  技术社区  ›  Nate CSS Guy

Visual Studio“添加服务引用”不断向我的配置文件添加“extendedProtectionPolicy”

  •  4
  • Nate CSS Guy  · 技术社区  · 14 年前

    extendedProtectionPolicy 到我的安全绑定,这在我的Win7机器上运行良好。但是,当我部署到server2003时,在配置文件中指出无法识别的元素会出错。

    <extendedProtectionPolicy policyEnforcement="Never" /> 修复错误。

    这是在添加服务引用(客户端)之后生成的不需要的web.config的整个部分

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

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

    我想指出几点。这在VS2010和VS2008中都会发生。这种情况发生在ASP.NET-MVC风格的使用者项目以及Windows Service/WPF应用程序中。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Sandor Drieënhuizen    14 年前

    据我所知,从互联网上的信息和微软连接更具体地说,这是一个已知的问题,尚未得到解决。

    This blogpost 解释如何对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/> 部署应用程序时的节点。