0

在過去的聖誕節假期期間,當我工作的網站遇到非常低的流量時,我們看到幾個請求超時例外(每天一個>> 12/26 ,12/28,12/29和12/30)需要用戶身份驗證。我們很少看到Request在這個非常低的流量周之前超時例外。當聖誕節假期周的流量非常低時,請求超時

在請求超時錯誤之前,應用程序可能有一段時間沒有登錄用戶。但是,例外情況不在登錄頁面上,而是在用戶登錄後。如前所述,例外情況出現在需要用戶驗證的頁面上。

什麼是造成這個問題的任何想法?看到這是在非常低的交通時間,它可能隻影響在網站上工作的少數客戶,但我仍然想更多地瞭解這一點。

這是在Windows Server 2008上的IIS7上運行的ASP.NET Web窗體應用程序(使用窗體身份驗證)。SQL Server 2005數據庫。

回答

1

不知道你的設置或代碼太多,我最好的猜測是,它可能是由於內存被釋放出來,或者硬盤沒了,或者類似的事件。除此之外,當流量較低時,應用程序執行更差似乎沒有什麼意義。

+0

請問SQL Server是否需要花時間起牀並運行並導致超時?登錄是在與應用程序不同的數據庫中執行的(儘管在同一數據庫服務器上)。有沒有辦法指定一個最小的sql服務器「關注」到一個特定的數據庫? – 2010-01-04 16:11:26

+0

我不能說我會知道讓SQL保持數據庫活躍狀態,但如果匿名用戶和訂閱用戶使用不同的數據庫,並且登錄數據庫足夠大,這可能是您的問題。 – Sukasa 2010-01-04 16:48:11

0

您還沒有給我們足夠的信息來幫助診斷任何問題。當你提到Time Outs時,我的第一個傾向可能是由於內存泄漏。你如何連接到數據庫,你是否讓任何類型的讀者打開太久? 檢查您可能在應用程序中使用的任何資源,並使用try catch finally塊,以便finally塊處理並清理任何類型的密集資源。

+0

我很確定所有連接都已正確關閉,並嘗試抓取最終塊也已實施。流量太低時,內存泄漏如何導致超時?我期望在高流量時間看到。 – 2010-01-04 16:14:51

+0

當涉及到內存泄漏時,網站上有多少人無所謂。我不知道或沒有看到你發佈代碼,所以我不知道是什麼原因造成的。這只是我想到的第一件事。資源可能會取消整個網站。發生在我們最好的人身上! – JonH 2010-01-04 16:24:01

0

在IIS7中,每個應用程序池都有一個空閒超時(如果我沒有記錯,默認爲20分鐘)。所以如果你的網站在這段時間內處於空閒狀態,apppool將被關閉,並且當有人請求一個頁面時將不得不重新啓動。 IIS啓動時有點慢,因此在apppool關閉後第一個請求頁面的客戶可能會請求超時。您可以通過在inetmgr - >應用程序池 - >高級設置中的apppool上設置更高的超時時間來解決此問題。

+0

但匿名請求沒有超時也沒有登錄,所以應用程序池一定已經存在。沒有?? – 2010-01-04 16:12:44

-1

此Windows服務通過請求一個可配置的時間量的網頁列表來解決問題,以保持網站「活躍」。我的應用程序域緩存不再超時,用戶不再在我的網站上遇到不可接受的響應時間。

此解決方案適用於DotNetNuke,社區服務器和SQL Reporting Services應用程序。該服務在安裝在任何具有永久性互聯網連接(T1,Cable,DSL ...)的計算機上時非常有效。與同類產品不同,您可以獲得修改簡單的源代碼。

http://www.spikesolutions.net/ViewSolution.aspx?ID=c2b7edc0-5de1-4064-a432-05f6eded3b82