是否有推薦的方式來反彈一個asp.net應用程序,除了從應用程序內部觸摸web.config?是HttpRuntime.UnloadAppDomain()
;這樣做的首選方法?如果是的話,你在哪裏做這個?在應用程序中卸載頁面或其他地方?如何重新啓動asp.net應用程序,除了修改web.config
回答
如果這是.NET 2.0或更高版本,那麼您可以添加一個「App_offline.htm」文件,向服務器發出請求,將其刪除,然後向服務器發出另一個請求。
只要app_offline.htm文件存在於文件夾中,這一系列事件就會強制ASP.NET卸載應用程序。
斯科特Guthrie的就可以了博客條目: http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx
從應用程序中觸摸web.config文件是一個壞主意,海事組織。此外,有一個你修改的文件的想法是一個小黑客,國際海事組織。
的文件明確規定,UnloadAppDomain
將關閉應用程序:
UnloadAppDomain允許使用的應用程序編程關機。
您應該可以在應用程序的任何位置進行此調用。請注意,您可能會得到SecurityException
,因此請確保運行時爲您提供適當的權限(您可能希望將其放入庫中並撥打電話,然後在GAC中將該庫設置爲具有充分信任的證據) )。
如果您不想停止並啓動應用程序池,則可以隨時回收它。
您可以通過調用做到這一點HttpRuntime.ShutdownAppDomain方法(需要使用反射來調用它,因爲它是一個私有的靜態方法)
如何我的一個例子見How to restart an IIS Worker Process programmatically (i.e. shutdown the current ASP.NET Domain)在「重新啓動」REST API中使用此方法
通過在應用程序目錄下運行時創建或重命名文件夾,可以安全地重新啓動Web應用程序。很明顯,您需要爲分配給用戶運行應用程序「修改」Web目錄或其下的子目錄的權限。
該方法在 http://www.bartlannoeye.be/blog/restarting-a-.net-web-application-without-restarting-iis
提到我用下面的代碼來執行它在我的情況。修改它在「可寫」子目錄上工作
protected void RestartButton_Click(object sender, EventArgs e)
{
//restart web app (instead of iisreset)
DirectoryInfo dir = new DirectoryInfo(Server.MapPath("restart"));
if (dir.Exists)
{
Directory.Move(dir.FullName, dir.FullName + "ed");
}
else
{
DirectoryInfo dired = new DirectoryInfo(Server.MapPath("restarted"));
if (dired.Exists)
{
Directory.Move(dired.FullName, dir.FullName);
}
else
{
Directory.CreateDirectory(dir.FullName);
}
}
}
此代碼適用於我。只需調用它來重新加載應用程序。
System.Web.HttpRuntime.UnloadAppDomain();
這種方法只會卸載我們的應用程序。如果你只是把這個方法放在一個ASP.NET web按鈕中,那麼你完全完成了。那麼我們的應用何時會重新加載?實際上,如果你點擊你的按鈕,它會首先啓動我們的方法和卸載應用程序。進一步在我們在那個時候的網頁上也會被重新加載,因爲我們只是點擊一個按鈕並且網頁應該刷新。啓動我們的方法後,頁面刷新過程也會導致我們的應用程序重新加載。
- 1. 您可以修改web.config而不重新啓動ASP.NET應用程序嗎?
- 2. ASP.NET Web應用程序在刪除目錄時重新啓動
- 3. 如何發現ASP.NET應用程序重新啓動的原因
- 4. 如何加快ASP.NET應用程序的重新啓動速度?
- 5. 在應用程序中更改語言 - 如何重新啓動?
- 6. 應用程序何時重新啓動?
- 7. 如何以編程方式修改ASP.NET MVC和C#應用程序中的web.config?
- 8. QT4:如何重新啓動應用程序?重新設置?
- 9. [Android]應用程序重新啓動設備後重新啓動
- 10. IIS 7.5應用的web.config重新啓動整個應用程序池
- 11. DataGridView不會更新,除非應用程序重新啓動
- 12. 使用asp.net(IIS7)重新啓動應用程序池
- 13. 重新啓動Java應用程序
- 14. Netbeans - 應用程序重新啓動
- 15. 重新啓動Android應用程序
- 16. TTNavigator重新啓動應用程序內
- 17. Android - backbutton - 重新啓動應用程序
- 18. 重新啓動Swing應用程序
- 19. 重新啓動Rails應用程序
- 20. 重新啓動Java應用程序
- 21. 當應用程序重新啓動
- 22. 重新啓動Iphone應用程序
- 23. 避免重新啓動應用程序
- 24. 問題:重新啓動應用程序
- 25. 重新啓動Eclipse應用程序
- 26. 無需重新啓動應用程序
- 27. FragmentCompat重新啓動應用程序
- 28. 如何在發生更新時重新啓動應用程序?
- 29. IIS池回收,池重啓,應用程序重啓,web.config更新 - 全局asax
- 30. 在電話IOS上重新啓動應用程序後,Localstorage被清除了嗎?
不會讓系統離線。我希望它重新啓動/重新加載乾淨的緩存/會話等。當我刪除app_offline.htm時,這會默認恢復它? – MikeJ 2009-01-02 19:47:46