我已经并排安装了vs2010和vs2012。如果我在vs2010中打开我们的MVC站点并使用开发Web服务器运行它可以正常工作,如果我在vs2012中做同样的事情,我每次第一次请求到站点时都会得到“Server Too Busy”。第一次请求后的每个请求都可以正常工作。
更新:我在vs2012中注意到只有项目需要构建才会发生。如果我没有做任何更改,即项目不需要构建,我点击F5启动它并打开IE它工作正常,我没有在浏览器中收到“Server Too Busy”消息。
答案 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的请求限制,请尝试以下操作:
答案 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)