2012-12-07 63 views
48

我有vs2010和vs2012並排安裝。如果我在vs2010中打開我們的MVC網站並使用開發Web服務器運行它,那麼它工作正常,如果我在vs2012中做了同樣的事情,那麼每次對網站的第一次請求都會收到「服務器太忙」的問題。第一次請求後的每個請求都能正常工作。服務器在vs2012中忙碌

更新:我注意到在vs2012它只發生了項目需要建立。如果我沒有做任何改變,即該項目不需要構建,我打F5來啓動它並打開IE,它工作正常,我沒有在瀏覽器中看到「服務器太忙」消息。

+3

我還沒有想出這個,但它可能與vs2010和vs2012都被安裝。我讀了一篇文章,指出某人卸載了這兩個文件,然後重新安裝了這兩個文件,並且郵件消失了。儘管如此,我還沒有討厭這個問題。 –

+0

確保檢查EventVwr - 通常會在該處記錄錯誤的真正原因。 – FarmerBob

+0

卸載VS2010,因爲我不再使用它,但我仍然遇到同樣的問題。還不夠煩惱重裝vs2012 –

回答

47

我有這個問題我的ASP.Net解決方案,以及。在堆棧溢出或其他地方沒有解決這個問題的辦法。

設置

的Visual Studio 2013(但我認爲這也將爲VS 2010/2012 ASP.Net Web應用程序IIS快速安裝工作)。

我們的生產環境從來沒有這個問題,因爲它在IIS上運行。

我已經嘗試了很多解決方法,但是我找到了一個特定的解決方案。我將delayNotificationTimeout設置爲20秒,而不是默認值5,這對我們的解決方案來說並不足以讓人想起成功運行所需的一切。

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

目前爲止這麼好。如果我再過幾天沒有收到,我會將其標記爲答案。謝謝。 –

+0

這確實在這裏節省了一些嚴重的頭痛......我開始前往machine.config,但這個確認很有幫助。我們似乎也很奇怪地發現了與我們公司的防病毒策略的聯繫......並追查到這一點:http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection。 delaynotificationtimeout(v = vs.110).aspx – beauXjames

+2

我可以在***生產環境中使用**'delayNotificationTimeout =「20」** **沒有性能問題_? * IIS 7.5 Windows Server 2008 R2 * – Kiquenet

4

只是乾淨解決方案之前,你建立它。 另外,請檢查解決方案所在的文件夾的大小,然後在清潔構建之後&之前;你一定會找到一些區別。這樣做可以確保您清理/刪除每次構建後創建的不必要的dll,這是延遲正常流程的原因。

+16

我不應該每次都乾淨一點。 –

+1

清潔沒有爲我工作... – roshambo

1

** config.xml的是開始研究**在新的Windows的Visual Studio 2012安裝了第一的位置。該值應進行人工審查每一個新的客戶機/服務器應用程序

當真正不適當的服務器錯誤就沒有任何意義可言,想想,在項目的根明確設置隊列或池的大小,測試計算機的配置XML文件,描述在上面的MS鏈接中。當服務器只是你在機器上的時候,會回覆「太忙」,這太奇怪了。

始終能夠儘可能多地重複使用儘可能多的可回收對象,特別是數據庫連接。

就在同一開發機器上同時運行VS 2010和2012而言,它應該沒問題。只需在那裏查看您的參考資料是指向應用程序dll。

2

我終於固定了惱人的「服務器太忙」的消息從我放慢開發ASP.Net。

據有關httpRuntime.appRequestQueueLimit性質的言論: - 錯誤

當請求的數量排隊超過此設置施加的限制,進入的請求將與「服務器太忙503」被拒絕。

的默認值是5000,這是我隨意增加至9000這爲我工作:

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

如果您想查詢在運行時這個設置(以及DelayNotificationTimeout),我加下面的代碼我Default.aspx.csPage_Load事件基於this Stack Overflow question

// 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>"); 
+1

這與Arnold Van Der Drift的答案不同,只是通過代碼? –

+1

該解決方案對我無效。我們對appRequestQueueLimit沒有任何問題,但是應用程序在超時之前加載的時間很長。服務器過忙消息可能由多種原因引起。 –

+1

對於***生產環境***無效_performance issues_? * IIS 7.5 Windows Server 2008 R2 * – Kiquenet

0

在您的項目 - >右鍵點擊左邊催化性能研究,然後選擇網絡選項在服務器部分檢查使用本地IIS Web服務器

0

如果您正在Visual Studio中運行具有特定端口號的調試,請嘗試更改端口號。服務器的網址visual studio project web properties上的端口可能有問題。