Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 无法为20+;连接MVC3 IIS6 w长轮询_Asp.net Mvc 3_Iis 6_Long Polling - Fatal编程技术网

Asp.net mvc 3 无法为20+;连接MVC3 IIS6 w长轮询

Asp.net mvc 3 无法为20+;连接MVC3 IIS6 w长轮询,asp.net-mvc-3,iis-6,long-polling,Asp.net Mvc 3,Iis 6,Long Polling,这似乎是一个常见的问题/问题,但尽管检查了许多建议的解决方案,但迄今为止,任何方案都不适用于我们 应用程序 这是一个简单的聊天应用程序,在现有应用程序的JSON库上添加了一个新接口。我们将所有呼叫代理到他们的应用程序,以避免x域限制(IE8)。 ASP.net MVC3应用程序 它位于IIS6,W2K3 SP2。开发svr有1gig ram,测试svr有4gig ram 问题 当我们接近20个并发用户时,请求开始滞后-在事件查看器中找不到任何问题。看起来电话只是在排队。没有返回503 我们试过的

这似乎是一个常见的问题/问题,但尽管检查了许多建议的解决方案,但迄今为止,任何方案都不适用于我们

应用程序 这是一个简单的聊天应用程序,在现有应用程序的JSON库上添加了一个新接口。我们将所有呼叫代理到他们的应用程序,以避免x域限制(IE8)。 ASP.net MVC3应用程序

它位于IIS6,W2K3 SP2。开发svr有1gig ram,测试svr有4gig ram

问题 当我们接近20个并发用户时,请求开始滞后-在事件查看器中找不到任何问题。看起来电话只是在排队。没有返回503

我们试过的
  • 我们正在使用AsyncController长时间轮询第三方Web服务的结果 在IIS6举办
  • 我们正在使用TPL在AsyncController方法中调用它们的服务
  • 我们已经修改并设置maxWorkerThreads=100
  • 我们已经看过了,但是HTTP.SYS配置看起来服务于无限多的线程,所以我们没有费心添加注册表项
  • 第三方服务可以处理大量并发请求(并且位于web场中,因此我们很有信心我们是最薄弱的环节)

我们错过了什么非常感谢任何帮助

嗯。。。差不多四周后,我想我应该更新一下,以防有人想知道是什么帮助我们克服了这些限制(我们在我们的开发服务器1gig Xeon上塞满了大约100个simul连接)

异步控制器
  • 如果您有一个潜在的长等待请求(即长轮询),那么使用它们
  • 可以随意使用TaskFactory,但一定要将其标记为长时间运行的进程,如果线程中存在异常风险,一定要使用ContinueWith,以便减少操作,并将错误返回给调用者
服务点管理器
  • 如果正在进行下游调用(即WebService/3rd party API),请确保已将DefaultConnectionLimit从默认的2个同时连接增加到默认值
  • 粗略的指导是8*Num内核,这样您就不会耗尽传出连接资源
  • 有关更多信息,请参阅
IOCP vs RestSharp
  • 我喜欢RestSharp的API,它非常棒,但它可能更多地用于客户端编程,而不是代理请求。我的错误!!使用HttpWebRequest和Begin/End方法来利用IOCP
  • 如果您希望反向代理或url重写
最后,我们的问题不是传入的请求,而是请求被代理给第三方,我们没有提供足够的连接,因此它们都排队等待整个系统。很高兴地说,经过大量的阅读、调查和编码,我们已经解决了这个问题