2013-02-20 36 views
0

我有一個使用SQL後端的經典ASP應用程序。該應用程序使用Access直到本週早些時候,當我改變它試圖解決這個問題,無濟於事。問題在於用戶整天都在IE中打開網站,並且在使用之間可能需要一個小時或更長時間。在開放一段時間後,當他們嘗試提出請求時,網站會掛起並最終顯示「無法顯示頁面」。如果他們點擊後退按鈕,然後刷新頁面,它工作正常。經過長時間的瀏覽器打開後,經典ASP應用程序掛起

我剛剛將應用程序池從Integrated更改爲Classic,以便可以修復它,但如果任何人有任何其他想法,我歡迎他們。 IIS(7.5)上還有一個其他站點,並且用戶遇到此掛起時,服務器上沒有大量資源使用情況。

此外,我已啓用失敗的請求跟蹤運行超過3秒的任何內容。當這些掛起事件發生時,我得到日誌文件,但他們說請求返回了狀態碼200,但似乎總是在NOTIFY_MODULE_START - IsapiModule,Notification 128,Notification EXECUTE_REQUEST_HANDLER的日誌中停止。該事件的模塊通知在持續時間內顯示NO_END。

感謝,

大衛

回答

0

在一個設定的時間後,IIS會話超時 - 默認值是20分鐘。

你可以做的是設置一個會話變量您的着陸頁上 - 例如

<% Session("Active") = "yes" %> 

然後對你的所有其他網頁的腳本,如果會話不超時反彈你回到登陸頁面 - 例如

<% if Session("Active") <> "yes" then 
Response.redirect("mylandingpage.asp") 
end if %> 
+0

我將會話超時更改爲480(8小時),而且我仍然遇到同樣的問題。 – 2013-02-20 21:56:09

1

你可以建立在Javascript背景AJAX/jQuery的平兒,只是ping通的服務器每5分鐘刷新會話,並且永遠不會被註銷。

+0

他們沒有被註銷,本身。他們不必重新登錄,但刷新頁面似乎可以解決問題。 – 2013-02-21 14:11:11

+0

我認爲你的登錄使用了會話ID,但是如果你的登錄/註銷代碼不依賴於會話ID而是一個cookie,那麼這就是你刷新工作的原因。我的答案仍然是一個有效的修復,應該考慮,因爲ajax ping將與頁面刷新相同,但在後臺默默無聞地完成。 – silver 2013-04-18 06:31:36