“目标主体名称不正确”401错误

Lim*_*mey 5 iis reporting-services ssrs-2008-r2

因此,我们有一个小应用程序,它指向 2008 SSRS 服务器上的报告。

该应用程序正常工作正常,但由于我们向服务器添加了更多网站,因此我们已将 Web 应用程序绑定更改为不是服务器名称的名称。

这导致我们得到以下结果:

目标主体名称不正确 说明:当前 Web 请求执行期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.ComponentModel.Win32Exception:目标主体名称不正确

来源错误:

执行当前 Web 请求期间生成未处理的异常。有关异常来源和位置的信息可以使用下面的异常堆栈跟踪来识别。

堆栈跟踪:

[Win32Exception(0x80004005):目标主体名称不正确] System.Net.NTAuthentication.GetOutgoingBlob(Byte []传入Blob,布尔值 throwOnError,SecurityStatus&statusCode)+2622099
System.Net.NTAuthentication.GetOutgoingBlob(字符串传入Blob)+99
System.Net .NegotiateClient.DoAuthenticate(字符串质询,WebRequest webRequest,ICredentials凭据,布尔预身份验证)+767
System.Net.NegotiateClient.Authenticate(字符串质询,WebRequest webRequest,ICredentials凭据)+18
System.Net.AuthenticationManager.Authenticate(字符串质询,WebRequest请求,ICredentials凭据)+146
System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest,ICredentials authInfo)+2279623
System.Net.HttpWebRequest.CheckResubmitForAuth()+3031261
System.Net.HttpWebRequest.CheckResubmit(异常&e)+169

[WebException:远程服务器返回错误:(401) 未经授权。]

我们将新绑定名称的 spn 添加到 SSRS 服务器以获取运行应用程序的 ID,但什么也没有。

我看到很多遇到 SSPI 问题的人都这样做,但没有出现 401 错误。

我们使用的 ID 可以完全访问这两个盒子,并且您可以毫无问题地直接从 Web 服务器访问 SSRS。只有当它包装在应用程序中时我们才会收到错误。

以前有人遇到过这个问题吗?

谢谢

Lim*_*mey 2

所以我确实找到了答案,这是一个双跳身份验证问题。

您可以在那里找到更好的描述,但基本上该站点会尝试进行两次身份验证(一次到 Web 服务器,一次到 SQL 服务器),但是 Windows 只会传递您的登录名和密码一次。之后,它只传递 ID。

解决方案是您需要让应用程序的应用程序池使用启用 Kerberos 的 ID,就像使用负载平衡时需要的那样。