问:使用.NET客户端的SignalR身份验证在本地工作,但不在服务器上

问题描述:

我在IIS中托管我的signalR,并且拥有驻留在同一网站中的.NET客户端。我使用Windows身份验证,因此凭据设置是这样的:问:使用.NET客户端的SignalR身份验证在本地工作,但不在服务器上

hubConnection.Credentials = CredentialCache.DefaultCredentials; 

这所有的工作,当我在本地运行的网站,但在服务器上部署时,它会给我一个401错误:

SignalR: myhub.DoStuff failed to execute. Error: StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: 
{ 
    Server: Microsoft-IIS/8.5 
    WWW-Authenticate: Negotiate 
    WWW-Authenticate: NTLM 
    X-Powered-By: ASP.NET 
    Date: Thu, 20 Apr 2017 19:40:41 GMT 
    Content-Length: 1293 
    Content-Type: text/html 
} 

我看到上面的错误在浏览器开发者工具,当这条线时,它会发生什么:

hubConnection.Start().Wait(); 

我敢肯定凭证本身是正确的,因为当我在本地运行的网站,并把在在服务器上部署的集线器URL,并传入该服务器的凭证,我可以启动hubConnection。

那么,什么可能会阻止SignalR .Net客户端在服务器上进行身份验证,但不能在本地进行身份验证?

现在我倾向于认为传递给SignalR的.NET客户端的凭证没有足够的权限。基本上,每次遇到401错误时,我都会在服务器的事件查看器日志中看到一条新的审核失败条目弹出,表示所使用的凭据无法登录。

有谁知道需要授予该帐户的权利?