我有一个使用signalR和Forms身份验证并发布到Azure服务的MVC应用程序 - 与MVC4,SignalR 1.1.2一起正常工作 我们升级到VS 2013以及最新和最好的所有软件包,MVC 5.5.2和signalR 2.1.2,并通过OWIN对SignalR进行了必要的更改
现在,当我没有登录时,signalR按预期工作并使用WebSockets连接。但是当我登录并刷新同一页面时,signalR不再有效。
通过websockets连接时出现403错误
然后尝试将服务器发送的事件作为(取消)
返回然后Long Polling也失败了403 - Forbidden错误
请注意,在本地运行时它工作正常,它只是在发布到azure服务时我遇到了这个问题
我必须做一些简单的事情,我很想念。有人做过类似的升级吗?
它是一款大型应用程序,因此无法真正共享多少代码,但实际上我所做的只是连接到signalR hub
<script type="text/javascript" src="/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
// SignalR - Initialise
var dashboardHub = $.connection.miHub;
// start signalR hub - this will connect the user
$.connection.hub.start();
});
</script>
和集线器类
public class MiHub : Hub
{
public override Task OnConnected()
{
ConnectUser();
return null;
}
....
}
当我未登录我的应用时,开发工具会显示以下内容:
wss://myservice.cloudapp.net/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=...
response 101
wss://myservice.cloudapp.net/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=...
response 200
{ "Response": "started" }
当我登录并在同一页面上点击F5时,我得到了
wss://myservice.cloudapp.net/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=...
response 403