時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
如果你曾經(jīng)修改了ASP.NET應(yīng)用程序(dll文件),與修改了bin文件夾或Web.config文件(添加/刪除/重命名的文件等),而該網(wǎng)站在運行,你可能已經(jīng)注意到,這將導(dǎo)致在AppDomain的重新啟動。所有的會話狀態(tài)會丟失和網(wǎng)站再次成功啟動,任何登錄的用戶將被退出(假設(shè)你不使用持久Cookie身份驗證)。 當(dāng)然,當(dāng)我們修改了web.config文件,并保存它,迫使一個AppDomain重新啟動,這是我們需要的。
我們有時動態(tài)創(chuàng)建和刪除的文件夾,在ASP.NET 2.0中,文件夾刪除將導(dǎo)致一個AppDomain重新啟動,這將導(dǎo)致嚴(yán)重的問題。 例如,對于一個電子商務(wù)網(wǎng)站的產(chǎn)品,你可能想存儲在目錄中的產(chǎn)品來自它的名字ID的產(chǎn)品的圖片,例如。/ productImages/123/ipod-nano.jpg,甚至為身份證圖像的記錄。 這有助于避免與其他上載的文件和圖像文件名沖突。 當(dāng)然,當(dāng)你來到刪除從數(shù)據(jù)庫產(chǎn)品,你自然要刪除其相應(yīng)的圖像和含有它的文件夾,但顯然不能因為這AppDomain重新啟動的問題。 因為,我們刪除留在我們的服務(wù)器中的空文件夾(文件刪除不會引起應(yīng)用程序重新啟動)。
解決方案
幸運的是,我們有了Reflection and HttpModules的解決方案。 首先創(chuàng)建一個像.cs文件...
如果您喜歡在 Application_Start使用Global.asax文件中,放置在Init()代碼在Application_Start 中。 我相信在Global.asax使用方法已過時,在使用HttpModules可以響應(yīng)網(wǎng)絡(luò)(應(yīng)用程序生命周期的會話開始,會話結(jié)束時,)。 init方法在Global.asax同Application_Start作用是一樣的,Dipose類似于Application_End。
我們要以上述代碼起作用,需要在web.config文件
需要說明的是,"stopAppDomainRestartOnFolderDelete"為自定義的任意名稱,"MyWebsite"為上述.cs文件中的命名空間,一般為項目名稱."StopAppDomainRestartOnFolderDeleteModule"為上述.cs文件中的類名.
這就是它。 這將防止文件夾刪除AppDomain重新啟動,但修改web.config和bin文件夾時仍會重新啟動,這正是我們想要的。
但是多刪除幾個文件就會發(fā)現(xiàn)session還是會過期,為什么會是這樣的呢?現(xiàn)在還沒搞清楚...于是在網(wǎng)上搜索就有了下面的這種方式
在
參數(shù)一看就知道是什么意思了..
關(guān)鍵詞標(biāo)簽:asp.net,解決方法
相關(guān)閱讀
熱門文章 誅仙3飛升任務(wù)怎么做-誅仙3飛升任務(wù)流程最新2022 鐘離圣遺物推薦-原神鐘離圣遺物詞條 解決方法:應(yīng)用程序“DEFAULT WEB SITE”中的服務(wù)器錯誤 使用aspnet_regiis.exe 重新注冊.NET Framework
人氣排行 誅仙3飛升任務(wù)怎么做-誅仙3飛升任務(wù)流程最新2022 asp.net表單提交方法GET\POST 在ASP.NET中如何判斷用戶IE瀏覽器的版本 Asp.net中messagebox的實現(xiàn)方法 Asp.net中的web.config配置 在ASP.NET MVC中實現(xiàn)大文件異步上傳 asp.net獲取URL和IP地址 FileUpload上傳多文件出現(xiàn)錯誤的解決方法