服务器在vs2012太忙

我有VS2010和VS2012并排安装。 如果我在vs2010中打开我们的MVC网站,并使用开发networking服务器运行它,那么它工作正常,如果我在vs2012中做同样的事情,我第一次请求到站点时,每次都会收到“Server Too Busy”。 第一个请求后的每个请求都正常工作。

更新:我注意到在vs2012中,只发生了需要构build的项目。 如果我没有做任何改变,即项目不需要build立,我打F5启动它,并打开IE浏览器工作正常,我没有在浏览器中的“服务器太忙”消息。

我也有这个问题,我的ASP.Net解决scheme。 在堆栈溢出或其他地方没有解决这个问题的办法。

设置

Visual Studio 2013(但我认为它也适用于vs 2010/2012 ASP.Net Web应用程序IIS快速安装程序)。

我们的生产环境从来没有这个问题,因为它运行在IIS上。

我已经尝试了很多来解决它,但我find了一个具体的解决scheme。 我将delayNotificationTimeout设置为20秒,而不是默认值5,这不足以让我们的解决scheme变出成功运行所需的一切。

 <system.web> <httpRuntime maxRequestLength="104850" executionTimeout="600" enableVersionHeader="false" delayNotificationTimeout="20" /> </system.web> 

在构build之前 清理解决scheme。 另外,在清理构build之前和之后检查解决scheme所在的文件夹的大小; 你一定会发现一些差异。 这样做可以确保您清理/删除每次构build之后创build的不必要的dll,这是延迟正常stream程的原因。

如果您需要增加IIS Express的请求限制,请尝试以下操作:

在IIS Express中configuration最大请求数

我终于修复了烦人的“ 服务器太忙 ”的消息,从减缓我的ASP.Net发展。

根据httpRuntime.appRequestQueueLimit属性的注释:

当排队的请求数量超过此设置强加的限制时,传入的请求将被拒绝,出现“ 503 – 服务器太忙 ”错误。

默认值是5000,我随机增加到9000为我工作:

 <system.web> <httpRuntime appRequestQueueLimit="9000"/> </system.web> 

如果你想在运行时(以及DelayNotificationTimeout )检查这个设置,我将下面的代码添加到基于这个Stack Overflow问题的 Default.aspx.cs Page_Load事件中:

 // Uncomment to debug "Server Too Busy" error message Configuration config = WebConfigurationManager.OpenWebConfiguration("~"); object o = config.GetSection("system.web/httpRuntime"); HttpRuntimeSection section = o as HttpRuntimeSection; Response.Write("DelayNotificationTimeout: " + section.DelayNotificationTimeout.ToString() + "<br>"); Response.Write("AppRequestQueueLimit: " + section.AppRequestQueueLimit.ToString() + "<br>"); 

** Config.XML是在新的Windows Visual Studio 2012安装上开始研究的第一个地方。 应该在每个新的客户机/服务器应用程序上手动查看这些值

当真正不合适的服务器错误根本没有意义时,请考虑testing计算机的configurationXML文件,在项目根目录中显式设置队列或池大小,如上面的MS链接所述。 当服务器只是你在机器上时,会回应“太忙”,这太奇怪了。

总是善于重复使用尽可能多的可回收对象,特别是数据库连接。

至于在同一台开发机器上同时运行VS 2010和2012,应该可以。 只要检查你的参考指向应用程序的DLL。

您必须提高并发请求限制。 阅读以下 :

修改ASP.NET请求队列限制http://technet.microsoft.com/zh-cn/library/dd425294%28office.13%29.aspx

在您的项目 – >右键单击属性,然后select服务器部分左侧的Web选项选中使用本地IIS Web服务器