首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SignalR冻结所有后续http请求

SignalR冻结所有后续http请求
EN

Stack Overflow用户
提问于 2014-06-18 03:50:42
回答 2查看 1.9K关注 0票数 3

我试图在我的web应用程序中使用SignalR,它托管在IIS7.5上。

我使用的是Windows7 X64 (没有SP1)和.Net 4.5和SignalR v2.0.3.0。

如果我从IIS express运行web应用程序,它可以正常工作,没有什么挂断,但是一旦我从IIS 7.5运行它,它就会挂断我的应用程序。我确认如果我禁用这段代码:

代码语言:javascript
复制
 $.connection.hub.start().done(function () {

 });

一切都很好。下面是截图,这表明在hub启动后,所有请求都处于不确定的块状态。即使集线器需要8-9秒来响应,但是即使在那之后,如果我请求一个简单的JPG,我什么也得不到,并且处于无限期的块状态。

下面是应用程序池的截图。我是在集成模式下运行。

这是集线器类:

代码语言:javascript
复制
 public class AppHub : Hub
    {
        public override Task OnConnected()
        {
            if (Context.User != null)
            {
                var email = Context.User.Identity.Name;
                if (!string.IsNullOrEmpty(email))
                {
                    UserRepository userRepository = new UserRepository();
                    userRepository.DoSomething(email, Context.ConnectionId);
                }
            }

            return base.OnConnected();
        }

        public override Task OnDisconnected()
        {
            if (Context.User != null)
            {
                var email = Context.User.Identity.Name;
                if (!string.IsNullOrEmpty(email))
                {
                    UserRepository userRepository = new UserRepository();
                    userRepository.DoSomething1(email, Context.ConnectionId);
                }
            }

            return base.OnDisconnected();
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-18 06:20:21

文档指出,您应该在dev计算机上使用IIS express,因为并发请求的数量受到限制。

当SignalR托管在IIS中时,支持以下版本。请注意,如果使用客户端操作系统,例如用于开发(Windows 8或Windows 7),则不应使用IIS或Cassini的完整版本,因为将有10个同时连接的限制,这些连接将很快到达,因为连接是短暂的、经常重新建立的,并且不再立即停止使用。IIS应在客户端操作系统上使用

Windows 10也是如此。

摘自这里的SignalR文档:http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/supported-platforms

票数 5
EN

Stack Overflow用户

发布于 2014-06-18 06:26:04

这可能是因为Windows 7上的请求执行限制,这限制了一次有多少并发请求才能排队)。根据这里的这个表格,IIS7.5的请求执行限制为3甚至1,这取决于您的操作系统,这很可能是由SignalR连接使用的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24276762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档