SignalR:此网页有一个重定向循环

时间:2013-11-26 16:38:46

标签: signalr

我正在尝试将SignalR Web应用程序部署到本地服务器上。服务器在Windows 7 Ultimate,IIS V7.5.7600.16385上运行。

使用IIS Express,我的笔记本电脑上的应用程序正常运行。

这是SignalR的最新版本,它会生成自己的signalr.html页面,用于调试集线器。在服务器上的该页面中,我在致电$.connection.hub.logging = true;之前添加了对$.connection.hub.start();的来电。

输出看起来像这样。

[16:22:49 GMT+0000 (GMT Standard Time)] SignalR: Client subscribed to hub 'notificationhub'. jquery.signalr-2.0.0.min.js:8
[16:22:49 GMT+0000 (GMT Standard Time)] SignalR: Negotiating with '/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&clientProtocol=1.3'. jquery.signalr-2.0.0.min.js:8
[16:22:49 GMT+0000 (GMT Standard Time)] SignalR: Attempting to connect to SSE endpoint 'http://192.168.2.9/signalr/connect?transport=serverSentEvents&connectionTok…HBFdOC&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&tid=6'. jquery.signalr-2.0.0.min.js:8
[16:22:49 GMT+0000 (GMT Standard Time)] SignalR: EventSource calling close(). jquery.signalr-2.0.0.min.js:8
[16:22:49 GMT+0000 (GMT Standard Time)] SignalR: This browser supports SSE, skipping Forever Frame. jquery.signalr-2.0.0.min.js:8
GET http://192.168.2.9/signalr/Error.htm  jquery.signalr-2.0.0.min.js:8
[16:22:50 GMT+0000 (GMT Standard Time)] SignalR: Opening long polling request to 'http://192.168.2.9/signalr/connect?transport=longPolling&connectionToken=Ck…BFdOC&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&tid=10'. jquery.signalr-2.0.0.min.js:8
[16:22:50 GMT+0000 (GMT Standard Time)] SignalR: Stopping connection. jquery.signalr-2.0.0.min.js:8
[16:22:50 GMT+0000 (GMT Standard Time)] SignalR: Fired ajax abort async = true. jquery.signalr-2.0.0.min.js:8
[16:22:50 GMT+0000 (GMT Standard Time)] SignalR: LongPolling failed to connect. jquery.signalr-2.0.0.min.js:8
GET http://192.168.2.9/signalr/Error.htm  jquery.js:8706
GET http://192.168.2.9/signalr/Error.htm  

当我复制链接http://192.168.2.9/signalr/connect?transport=serverSentEvents&...http://192.168.2.9/signalr/connect?transport=longPolling&...并将其粘贴到单独的浏览器窗口时,我会在SignalR错误页面上获得重定向循环。

我错过了任何明显的调试步骤吗?

编辑:通过Fiddler运行这些查询,告诉我/ signalr / connect链接重定向到login.aspx:

1   302 HTTP    192.168.2.9 /signalr/connect?transport=serverSentEvents&connectionToken=OcIKZ%2FgRaOBwdEp6gMtBmoflJkIWwcsfsjIU%2BznksMqCFTPAYkaQ1MDEihovbCgh4MnIuB9F6nJPELk8VAn7K2sqN9CXbhu%2FlwLEBWVTaUTYAEOE&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&tid=2  699 no-cache; Expires: -1   text/html; charset=utf-8                
2   302 HTTP    192.168.2.9 /login.aspx?ReturnUrl=/signalr/connect?transport=serverSentEvents&connectionToken=OcIKZ%252FgRaOBwdEp6gMtBmoflJkIWwcsfsjIU%252BznksMqCFTPAYkaQ1MDEihovbCgh4MnIuB9F6nJPELk8VAn7K2sqN9CXbhu%252FlwLEBWVTaUTYAEOE&connectionData=%255B%257B%2522name%2522%253A%2522notificationhub%2522%257D%255D&tid=2&transport=serverSentEvents&connectionToken=OcIKZ/gRaOBwdEp6gMtBmoflJkIWwcsfsjIU+znksMqCFTPAYkaQ1MDEihovbCgh4MnIuB9F6nJPELk8VAn7K2sqN9CXbhu/lwLEBWVTaUTYAEOE&connectionData=%5B%7B%22name%22:%22notificationhub%22%7D%5D&tid=2  138 private text/html; charset=utf-8                

所以这必须与连接令牌有关。还需要更多的调查。

2 个答案:

答案 0 :(得分:1)

302错误可能意味着您已经拥有SignalR期望看到其中心的内容。一个故障排除步骤是手动生成代理,这样您就可以更好地控制在哪里创建的内容。请参阅以下内容:

http://www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting#other

http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#genproxy

答案 1 :(得分:0)

我注意到,当重定向到login.aspx时,您的connectionData参数被编码两次。它是

connectionData=%255B%257B%2522name%2522%253A%2522notificationhub%2522%257D%255D

但必须

%5B%7B%22name%22%3A%22notificationhub%22%7D%5D

,即[{"name":"notificationhub"}]。 你能详细说明你收到的错误吗?