SignalR工作正常,除了每个其他页面加载,我得到:
开始和中止的错误是
无法识别的用户身份。在活动的SignalR连接期间,用户身份不能更改。
此时,如果我执行ctrl + f5,则效果很好。
我在IIS 7.5上,这意味着它不使用网络套接字,如果这很重要。
答案 0 :(得分:0)
是否有可能在SignalR /协商请求之后但在/ start请求之前完成的另一个请求正在设置更改用户IPrincipal
的cookie?
SignalR / negotiate请求返回“connectionToken”(以及其他内容),用作反CSRF令牌。每个后续SignalR请求都包含查询字符串中的connectionToken,并且服务器验证请求connectionToken的同一用户是否正在发出新请求。如果用户不一样,SignalR将以403响应。
正如Marcel N.所指出的,这也可能是由用户的会话到期引起的,因为这会导致用户注销。我认为会话不太可能在/ negotiate和/ start请求之间持续到期。