該套系統是以VB.NET撰寫而成的網路應用服務系統,
DB是使用SQL Server 2005,
AP主機跟DB主機是分開的2臺不同主機,
OS都是Windows Server 2003 SP2。
簡單描述一下問題發生的當下情況:
使用者會反應系統突然很慢很慢,
若是正要登入系統者,輸入帳密按下登入按鈕之後,會等一段時間(感覺已經在切換登入頁面了),最後會跑出“無法顯示網頁”的畫面。
不過這情況有時候只會持續5~10分鐘,過後登入系統又正常了,
剛剛反應系統慢的使用者也明顯感到系統變快了……
當問題發生時,工程師有查看AP Server的事件檢視器。
在發生問題的那個時間點,一定會看到這樣的訊息:
我想問:
以上再麻煩各前輩解惑,也可提供問題偵查方向,謝謝!
建議從msdtc相關event log去查看看。當msdtc元件掛掉,要等有人叫用,才會重新載入,重新載入會花一些時間,時間太長,就有可能出現這狀況。
http://support.microsoft.com/kb/308097/zh-tw
這裡是EVENT LOG ID 1078 微軟解決辦法
若要修改 TCP/IP 作業逾時值,ASP.NET Web 伺服器處理程序,變更下列屬性在 Machine.config 檔 (或任何 Web 應用程式的 Web.config 檔中指定下列的屬性)。
<sessionState
stateNetworkTimeout="10"
/>
修改 TCP/IP 作業逾時數值為狀態伺服器,請依照下列步驟執行:
停止 ASP.NET 狀態伺服器服務。
按一下 [開始]、 按一下 [執行]、 輸入 Regedt32.exe,] 然後按一下 [[確定] 以啟動 「 登錄編輯程式 」。
在登錄中找到下列機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters
新增名為 SocketTimeout 的 DWORD 值。設定為正整數來代表新的 TCP/IP 逾時 (以秒為單位)。
結束 「 登錄編輯程式 」。
重新啟動 ASP.NET 狀態伺服器服務
遇到 < 徵狀 > 一節中所述的問題的使用者應該使用這些方法來增加逾時值在狀態伺服器上,然後為 20 秒的所有 Web 伺服器上。
附註如果當您增加 Web 伺服器上的 [逾時] 值,不執行狀態伺服器,用戶端要求逾時 n 秒其中 n 等於新的 「 逾時 」 值,而非預設值 10 秒之後。
IIS 與 ASP.NET 狀態服務
這兩個服務重新啟動看看
有可能是服務掛掉了
如果服務重新啟動, 問題有解決的話
請用工作排程每天離峰時間定時重新啟動那兩個服務