2011-07-20 54 views
1

在我激活更新或刪除過程的按鈕之後,我的應用程序中的Application_End()事件被我的代碼激發而沒有任何調用。這會導致所有會話被破壞,並在每次更新/刪除某些內容時將用戶重定向到登錄頁面。 我認爲這是由於一些異常,這是終止和重新啓動應用程序沒有任何警告或錯誤發生。 請建議。 在此先謝謝在global.ascx中沒有任何調用的情況下,Application_End()事件被觸發

+0

這得到修復嗎? –

回答

1

首先要看的是事件查看器。您可以在工作進程中找到任何未處理的異常。

+0

喜ONOF,我得到這個從事件viewr, - - EVENTDATA /DevelopmentWebsite E:\阿樹\來源\網站已\ DevelopmentWebsite \ OPTIMUS2-PC WebDev.WebServer.EXE optimus2- PC \ optimus HttpException 會話狀態在此上下文中不可用。 at ASP.global_asax.Application_End(Object sender,EventArgs e)in System.Web.HttpApplication.get_Session()e:\ Ashu \ Source \ WebSites \ DevelopmentWebsite \ Global.asax:line 60 – Riky

+0

也許你的應用需要運行在經典模式下運行,但以集成模式運行(請參閱應用程序池),但如果沒有詳細信息,很難提供幫助 – onof

2

在調試模式下運行? AppDomain每15次動態重新編譯就會得到回收。它在文件改變時也可以回收,例如web.config。它甚至可以在應用程序站點內的非應用程序文件和文件夾更改時進行回收。因此,測試以查看這是否仍然在發佈模式下發生。

順便說一句,你可以改變動態重新編譯,迫使一個AppDomain復位的數量:在web.config設置在這裏:

<compilation numRecompilesBeforeAppRestart="15" /> 

提示:不要使用是InProc會話在調試時 - 使用StateServer或SQL國家(而不是我的偏好)。

有關更多信息,請參閱this blog post

0

您的網站可能因某種原因被回收。你將不得不檢查代碼的作用。我建議檢查一下,你的代碼中沒有改變網站結構(創建/刪除目錄) - 這導致應用程序域的回收。

0

會話狀態在Application_End中不可用。就這麼簡單。 Application_End是一個事件,在其他事情早已過去之後觸發。事件日誌條目很好地描述了這一點。

相關問題