SignalR会在每次其他页面刷新时中断,直到我执行ctrl + F5

时间:2014-08-23 23:12:41

标签: c# asp.net .net signalr

SignalR工作正常,除了每个其他页面加载,我得到:

errors

开始和中止的错误是

无法识别的用户身份。在活动的SignalR连接期间,用户身份不能更改。

此时,如果我执行ctrl + f5,则效果很好。

我在IIS 7.5上,这意味着它不使用网络套接字,如果这很重要。

1 个答案:

答案 0 :(得分:0)

是否有可能在SignalR /协商请求之后但在/ start请求之前完成的另一个请求正在设置更改用户IPrincipal的cookie?

SignalR / negotiate请求返回“connectionToken”(以及其他内容),用作反CSRF令牌。每个后续SignalR请求都包含查询字符串中的connectionToken,并且服务器验证请求connectionToken的同一用户是否正在发出新请求。如果用户不一样,SignalR将以403响应。

正如Marcel N.所指出的,这也可能是由用户的会话到期引起的,因为这会导致用户注销。我认为会话不太可能在/ negotiate和/ start请求之间持续到期。​​