【发布时间】:2013-07-23 14:28:14
【问题描述】:
我用基于 SignalR (jquery.signalR-2.0.0-beta2.js) 的实时消息系统开发了一个 asp.net mvc 应用程序。问题是在 SignalR 连接启动后无法加载所有部分视图。在这种情况下,所有 ajax 请求之后 $.connection.hub.start({ transport: 'longPolling'}).done(function () { applicationHub.server.connectUser(); }) 保持挂起状态。是否可以使此请求异步或者它是 SignalR 中的错误?感谢您的帮助!
SignalR 调用:
<script type="text/javascript">
$(document).ajaxStop(function () {
var applicationHub = $.connection.applicationHub;
if ($.connection.hub && $.connection.hub.state == $.signalR.connectionState.disconnected) {
registerConversationClientMethods(applicationHub);
$.connection.hub.start({ transport: 'longPolling'}).done(function () {
applicationHub.server.connectUser();
})
.fail(function () {
});
}
});
</script>
呈现局部视图的 Ajax 调用:
function LoadActivities(id, type, container, action, loaderpath) {
var url = action + '/?id=' + id + '&type=' + type;
var targetDiv = container;
var ajaxLoading = "<img id='ajax-loader' src='" + loaderpath + "' height='6' width='50' style='margin:5px;'>";
$(targetDiv).html("<div align='center'>" + ajaxLoading + "</div>");
$.get(url, null, function (result) {
$(targetDiv).html(result);
});
}
【问题讨论】:
-
您使用的是 iOS 吗?这是问题吗? github.com/SignalR/SignalR/issues/1406
-
不,我使用的是 Windows 7。您的问题有类似的行为,但这不是我想出的问题。在 SignalR 的 ajax 请求开始 (poll?transport=longPolling&connectionToken=1Kpx%2B72...) 后,所有异步 ajax 请求都处于挂起状态,该请求也具有挂起状态(应该如此)。
-
Windows 7 + 完整 IIS(不是 iis express)的并发连接数限制为 10。您使用的是完整 iis 吗?
-
这里有同样的问题。我有三个解决方案,其中一个有类似的问题。 Windows 8 和完整的 IIS。如果我通过开发控制台停止 SignalR 连接,则其他请求开始得到答复。当连接开始时,服务器没有响应。使用提琴手,我看到请求已发送。
-
我为遇到“冻结”问题的网站解决了这个问题。会话状态在服务器根目录下启用。
标签: jquery asp.net-mvc signalr