2013-12-09 106 views
2

我試圖診斷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秒發生的事情以及如何解決問題的任何想法,我都非常感激。

+2

您的代理服務器與客戶端之間的暫停時間爲30秒嗎? –

+0

@Guntram聽起來似乎是合理的,謝謝,但我不知道我應該在哪裏找出答案。 IIS在由Rackspace託管的Windows 2008 R2服務器上運行,並且設置它的人員已經離開......我應該查看哪些建議? – Appetere

+1

查看日誌中的IP地址 - 10.177.197.244。這是一個私人IP地址,所以我認爲從「外部」看到的IP是代理的IP,它將請求重新路由到內部的真實服務器。只有rackspace支持可以幫助你。 –

回答

2

感謝Guntram的指導,我發現問題是在負載平衡器中發生了30秒的超時,這是HMTL錯誤頁面的起源點。

一旦Rackspace增加了超時時間,一切都恢復正常。

相關問題