服务器在vs2012中太忙了

时间:2012-12-07 21:16:59

标签: visual-studio-2012

我已经并排安装了vs2010和vs2012。如果我在vs2010中打开我们的MVC站点并使用开发Web服务器运行它可以正常工作,如果我在vs2012中做同样的事情,我每次第一次请求到站点时都会得到“Server Too Busy”。第一次请求后的每个请求都可以正常工作。

更新:我在vs2012中注意到只有项目需要构建才会发生。如果我没有做任何更改,即项目不需要构建,我点击F5启动它并打开IE它工作正常,我没有在浏览器中收到“Server Too Busy”消息。

8 个答案:

答案 0 :(得分:47)

我的ASP.Net解决方案也遇到了这个问题。 Stack Overflow或其他任何地方都没有针对此问题的解决方案。

<强>设置

Visual Studio 2013(但我认为它也适用于vs 2010/2012 ASP.Net Web应用程序IIS Express设置)。

我们的生产环境从未出现过此问题,因为它在IIS上运行。

我已经尝试了很多修复它,但我找到了一个特定的解决方案。我将delayNotificationTimeout设置为20秒,而不是默认值5,这对我们的解决方案来说不足以让人想起成功运行所需的一切。

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

答案 1 :(得分:4)

清理解决方案,然后再构建。 此外,检查解决方案所在的文件夹的大小,之前和之后。干净的构建后;你肯定会发现一些不同之处。这样做可以确保清理/删除每次构建后创建的不必要的dll,这是导致延迟正常流动的原因。

答案 2 :(得分:2)

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

Configure Maximum Number of Requests in IIS Express

答案 3 :(得分:2)

我终于修复了烦人的&#34; 服务器太忙&#34;减慢我的ASP.Net开发的消息。

根据httpRuntime.appRequestQueueLimit属性的评论:

  

当排队的请求数量超过此设置所施加的限制时,将使用&#34; 503 - 服务器太忙&#34;拒绝传入的请求。错误。

默认值为5000,我随机增加到9000,这对我有用:

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

如果您想在运行时(以及DelayNotificationTimeout)检查此设置,我会根据{{3}将以下代码添加到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>");

答案 4 :(得分:1)

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

当真正不合适的服务器错误完全没有意义时,请考虑一下您的测试计算机的配置XML文件,它们在项目根目录中明确设置队列或池大小,如上面的MS链接所述。很奇怪,服务器会响应“太忙”#34;什么时候只是你在机器上。

始终能够尽可能多地重用可循环使用的对象,特别是数据库连接。

至于在同一台开发机器上运行VS 2010和2012,它应该没问题。只需检查您的引用是否指向应用程序dll。

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

在您的项目中 - &gt;右键单击属性,然后在“服务器”部分的左侧选择“Web选项”,选中“使用本地IIS Web服务器”

答案 7 :(得分:0)

如果您在Visual Studio中使用特定端口号运行调试,请尝试更改端口号。您的网络visual studio project web properties服务器上的端口可能出现问题。