我試圖診斷IIS 7.0在IIS日誌中顯示成功(200)響應但將「服務暫時不可用」HTML消息返回給瀏覽器500秒後,30秒後。IIS日誌200狀態,但返回500狀態
更多的細節:
- 我稱爲的WebAPI端點運行涉及的文件和數據庫條目的導入功能。
- 導入需要40-70秒才能完成。
的IIS 7.5日誌顯示請求成功完成:
2013年12月9日10點45分17秒10.177.197.244 POST/API/streamdata/ImportStream - 80 [...]的Mozilla/5.0 +( Windows + NT + 6.3; + WOW64)+ AppleWebKit/537.36 +(KHTML,+ like + Gecko)+ Chrome/31.0.1650.63 + Safari/537.36 200 0 64 1150 67120
導入代碼還會記錄導入步驟並顯示導入已成功完成。
瀏覽器接收到一個HTML頁面,並在30秒後顯示「Service Temporarily Unavailable」標題和一個500響應代碼。
- 使用.NET4.5
我已經試過:
- 使用Chrome和Firefox - 同樣的結果無論哪種方式。
- 向jQuery AJAX請求添加超時。如果設置的很短(30秒),則會收到實際的超時報告。如果這設置很長(5分鐘),我會像以前一樣收到服務不可用消息。
- 使用Fiddler客戶端,並可以看到服務器以500代碼響應(而不是客戶端生成的東西)。
- 檢出了各種IIS站點和應用程序池設置,但找不到解釋此行爲的設置。
- 調整導入代碼錯過了一些步驟,並用不到30秒完成。在這種情況下,瀏覽器收到了正常的200響應。
因此,總之,代碼運行正常,但服務暫時不可用的消息在請求30秒後返回給瀏覽器,即使服務器仍然愉快地處理完成請求。
關於30秒發生的事情以及如何解決問題的任何想法,我都非常感激。
您的代理服務器與客戶端之間的暫停時間爲30秒嗎? –
@Guntram聽起來似乎是合理的,謝謝,但我不知道我應該在哪裏找出答案。 IIS在由Rackspace託管的Windows 2008 R2服務器上運行,並且設置它的人員已經離開......我應該查看哪些建議? – Appetere
查看日誌中的IP地址 - 10.177.197.244。這是一個私人IP地址,所以我認爲從「外部」看到的IP是代理的IP,它將請求重新路由到內部的真實服務器。只有rackspace支持可以幫助你。 –