Asp.net mvc 3 无法为20+;连接MVC3 IIS6 w长轮询
这似乎是一个常见的问题/问题,但尽管检查了许多建议的解决方案,但迄今为止,任何方案都不适用于我们 应用程序 这是一个简单的聊天应用程序,在现有应用程序的JSON库上添加了一个新接口。我们将所有呼叫代理到他们的应用程序,以避免x域限制(IE8)。 ASP.net MVC3应用程序 它位于IIS6,W2K3 SP2。开发svr有1gig ram,测试svr有4gig ram 问题 当我们接近20个并发用户时,请求开始滞后-在事件查看器中找不到任何问题。看起来电话只是在排队。没有返回503 我们试过的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 我们试过的
- 我们正在使用AsyncController长时间轮询第三方Web服务的结果 在IIS6举办
- 我们正在使用TPL在AsyncController方法中调用它们的服务
- 我们已经修改并设置maxWorkerThreads=100
- 我们已经看过了,但是HTTP.SYS配置看起来服务于无限多的线程,所以我们没有费心添加注册表项
- 第三方服务可以处理大量并发请求(并且位于web场中,因此我们很有信心我们是最薄弱的环节)
我们错过了什么非常感谢任何帮助嗯。。。差不多四周后,我想我应该更新一下,以防有人想知道是什么帮助我们克服了这些限制(我们在我们的开发服务器1gig Xeon上塞满了大约100个simul连接) 异步控制器
- 如果您有一个潜在的长等待请求(即长轮询),那么使用它们
- 可以随意使用TaskFactory,但一定要将其标记为长时间运行的进程,如果线程中存在异常风险,一定要使用ContinueWith,以便减少操作,并将错误返回给调用者
- 如果正在进行下游调用(即WebService/3rd party API),请确保已将DefaultConnectionLimit从默认的2个同时连接增加到默认值
- 粗略的指导是8*Num内核,这样您就不会耗尽传出连接资源
- 有关更多信息,请参阅
- 我喜欢RestSharp的API,它非常棒,但它可能更多地用于客户端编程,而不是代理请求。我的错误!!使用HttpWebRequest和Begin/End方法来利用IOCP
- 如果您希望反向代理或url重写