0

我在从前端服务器调用 Web 服务时收到 401 未经授权的异常,但相同的代码在应用服务器中运行良好。

为了验证这一点,我们创建了控制台应用程序来调用 Web 服务。当我们从应用服务器调用服务时,它工作正常,但在 fe 服务器中同样失败。

我们发现了一种行为,它没有在 FE 服务器中的一段代码下方执行。

ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);

(我们在 ValidateRemoteCertificate 方法中添加了一些注释,我们可以看到消息显示在应用服务器而不是前端服务器)

  1. FE 和应用服务器中的所有证书都相同
  2. 使用相同的用户凭据运行。

有没有人更早遇到过同样的问题,还是我需要验证任何配置?

4

1 回答 1

0

401 通常与访问服务而不是 SSL 证书有关。您应该仔细检查以下一些内容

如果使用匿名

  • 在 IIS 中 - 身份验证 - 确保在 Web 应用程序上启用匿名身份验证
  • 确保 IUSR 权限位于您正在使用的文件夹权限上

如果使用窗口身份验证

  • 在 IIS 中 - 身份验证 - 确保在 Web 应用程序上启用了 Windows 身份验证
  • 确保 IIS_IUSRS 权限位于您正在使用的文件夹权限以及您想要访问的用户的角色上。
  • 确保您的应用程序池正在使用网络服务或委托用户帐户,正确设置以使用 kerberos。

希望这可以帮助。

于 2013-06-05T08:08:49.283 回答