【问题标题】:How to enable Windows Authentication and NetTCPBinding WCF webservice on IIS7?如何在 IIS7 上启用 Windows 身份验证和 NetTCPBinding WCF webservice?
【发布时间】:2011-07-18 12:20:55
【问题描述】:

我正在尝试在 IIS 7 上设置使用 Windows 身份验证和 NetTCPBinding 的 Web 服务。目前,当我尝试访问 wysdl 时出现此错误

“此服务的安全设置需要‘匿名’身份验证,但托管此服务的 IIS 应用程序未启用它。”

我的 Config 文件的相关部分如下所示...

<behaviors>
    ...
    <serviceBehaviors>
        <behavior name="WCFHostService.MyServiceBehavior">
            <serviceMetadata httpGetEnabled="false" />
            <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
    </serviceBehaviors>
</behaviors>
<services>
    <service name="UPMC.ISD.EADIS.ACO.ACOServiceConcept">
        <endpoint name ="TCP_Binding"
                address=""
                binding="netTcpBinding"
                contract="UPMC.ISD.EADIS.ACO.ACOServiceConcept.IACOService"/>
        <endpoint name="mexHttpbinding"
                contract="IMetadataExchange"
                binding="mexTcpBinding"
                address="mex" />
    </service>
</services>

如何使我的服务的“安全设置”对齐以允许我访问此服务?我还刚刚读到,您可以通过摆脱 mex 绑定端点或启用匿名身份验证来摆脱错误。但是,如果您没有 mex 绑定,您如何获得 wsdl?好吧,我想我会试一试,但如果您有任何其他建议,我肯定会接受。

谢谢。

【问题讨论】:

    标签: wcf windows-authentication nettcpbinding


    【解决方案1】:

    根据WCF NetTcpBinding Security - how does it work?,NetTCP 的默认安全设置是 Windows 身份验证。听起来一两件事可能是问题所在:

    1. 确保已启用 Windows 身份验证(在 IIS 管理控制台中的身份验证下 - 您可以在 @Joel C 的答案中找到匿名身份验证开关的同一位置)。

    2. 您可能希望在创建客户端代理时尝试指定 Windows 帐户凭据,以防运行客户端的帐户无法进行身份验证。

    客户端和服务器是否在同一个域中?

    【讨论】:

      【解决方案2】:

      您是否确认在托管服务的 IIS 应用程序中启用了匿名身份验证?在 IIS 管理控制台中,浏览到托管服务的站点和应用程序。然后确保您选择了“功能视图”,然后选择“身份验证”选项。您应该会看到各种形式的身份验证(匿名、Windows、ASP.NET 模拟等),并且每个都应该在其旁边显示启用或禁用。

      【讨论】:

      • 我不想启用匿名身份验证。我的一位同事在禁用匿名身份验证的情况下进行了类似的设置...
      猜你喜欢
      • 2012-09-26
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多