【问题标题】:WCF service with TransportCredentialOnly security mode causing HTTP status Code 401 error on IIS7 [closed]具有 TransportCredentialOnly 安全模式的 WCF 服务导致 IIS7 上的 HTTP 状态代码 401 错误 [关闭]
【发布时间】:2012-04-27 14:30:26
【问题描述】:

我刚刚花了 2 天时间调试以下错误,所以我坚持我会分享我的发现。

场景是这样的: 我有一个托管在 IIS7 上的 WCF 服务。该服务使用安全模式设置为 TransportCredentialOnly 的 basicHttpBinding。该网站启用了匿名身份验证和 Windows 身份验证。该网站的应用程序池在域帐户下运行,该帐户对网站的物理文件夹具有所有可能的权利。 从 Internet Explorer 浏览服务的 .svc 是可行的,但是当我们尝试从客户端调用服务的方法时,我们收到错误:“HTTP 请求未经授权,使用客户端身份验证方案协商”。此外,每次调用该方法时,IIS 日志都会显示 401.5 错误,这对于此安全设置来说是正常的,但它后面应该是 200,而这里不是这种情况。

最后,我们通过检查默认网站上的身份验证设置设法解决了这个问题。那里禁用了 Windows 身份验证。我们启用了它,服务开始工作。您会认为,网站设置会覆盖它,但它们不会。因此,请避免使用Wireshark,整天进行procmoning并检查此设置。

干杯!

【问题讨论】:

    标签: wcf iis-7 http-status-code-401 unauthorized transport-security


    【解决方案1】:

    这是你需要让设置在所有层都匹配的问题:

    • 客户端上的 App.config
    • IIS 设置
    • 应用程序池标识
    • svc 文件的 NTFS 权限
    • 服务器上的 Web.Config

    所有这些都需要匹配才能工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 2011-05-20
      • 2010-12-27
      相关资源
      最近更新 更多