導(dǎo)致ASP.NET站點(diǎn)重啟的十大原因
ASP.NET站點(diǎn)有時(shí)候會(huì)莫名其妙的重啟,什么原因?qū)е碌膮s不得而知,經(jīng)過(guò)一番折騰后,我總結(jié)了導(dǎo)致ASP.NET站點(diǎn)重啟的10個(gè)原因
1. 回收應(yīng)用程序池會(huì)導(dǎo)致站點(diǎn)重啟,記錄的原因是:
HostingEnvironment initiated shutdown HostingEnvironment caused shutdown
2. 修改應(yīng)用程序池回收規(guī)則會(huì)導(dǎo)致重啟,記錄的重啟原因:
HostingEnvironment initiated shutdown HostingEnvironment caused shutdown
3. 在IIS中修改站點(diǎn)的名字,不會(huì)導(dǎo)致重啟
4. 修改站點(diǎn)根目錄的配置文件web.config,在配置文件注釋中添加幾個(gè)空格會(huì)導(dǎo)致重啟,記錄的重啟原因是:
CONFIG change HostingEnvironment initiated shutdown
但是修改子目錄的web.config文件不一定會(huì)導(dǎo)致馬上重啟
5. 修改aspx,master文件不一定會(huì)導(dǎo)致重啟;但是每修改一次都會(huì)導(dǎo)致一次重新編譯,重新編譯次數(shù)達(dá)到15次之后會(huì)導(dǎo)致站點(diǎn)重啟,重啟原因是:
Recompilation limit of 15 reached HostingEnvironment initiated shutdown
15次后重啟這個(gè)數(shù)字可以在web.config中做配置,修改compilation的numRecompilesBeforeAppRestart屬性值即可。
<compilation debug="false" numRecompilesBeforeAppRestart="15">
6. 刪除bin目錄下的pdb文件,會(huì)導(dǎo)致重啟,記錄的重啟原因是:
Change Notification for critical directories.
在bin目錄下新建一個(gè)空的文件夾,會(huì)導(dǎo)致站點(diǎn)重啟,重啟原因是:
Directory rename change notification for 'D:projectsTestWebAppTestWeb'.T estWeb dir change or directory rename
在bin目錄下刪除空文件夾,會(huì)導(dǎo)致站點(diǎn)重啟,記錄原因是:
Directory rename change notification for 'D:projectsTestWebAppTestWeb'.T estWeb dir change or directory rename
7. 修改Global.asax文件會(huì)導(dǎo)致站點(diǎn)重啟,即使加幾個(gè)空格也會(huì)重啟,記錄的重啟原因是:
Change in GLOBAL.ASAX HostingEnvironment initiated shutdown
8. 對(duì)App_Code目錄做修改會(huì)導(dǎo)致站點(diǎn)重啟
在站點(diǎn)根目錄下添加一個(gè)名字為App_Code的文件夾,會(huì)導(dǎo)致重啟,記錄的重啟原因是:
Change Notification for critical directories. App_Code dir change or directory rename
刪除App_Code文件夾會(huì)導(dǎo)致站點(diǎn)重啟,記錄的重啟原因是:
File Change Notification Error in D:projectsTestWebAppTestWebapp_code
Change Notification for critical directories.
App_Code dir change or directory rename
在App_Code文件夾下面新建或者刪除一個(gè)cs文件,會(huì)導(dǎo)致站點(diǎn)重啟,記錄的原因是:
Change Notification for critical directories. App_Code dir change or directory rename
9. 對(duì)關(guān)鍵路徑的修改都會(huì)導(dǎo)致站點(diǎn)重啟,關(guān)鍵路徑包括:
bin, App_Code, Web References,App_Browsers,App_GlobalResources,App_LocalResources
10. 另外殺毒軟件對(duì)文件的掃描,有可能會(huì)導(dǎo)致ASP.NET進(jìn)程誤認(rèn)為文件或者關(guān)鍵路徑發(fā)生了變化,也會(huì)導(dǎo)致重啟。
以上是我總結(jié)的導(dǎo)致ASP.NET站點(diǎn)重啟的10個(gè)原因。 總的來(lái)說(shuō)有三個(gè)方面會(huì)導(dǎo)致站點(diǎn)重啟:一方面是IIS配置發(fā)生變化;另一方面是ASP.NET相關(guān)文件配置文件,global文件,aspx,ascx,master等類(lèi)型的文件發(fā)生變法;第三個(gè)方面是關(guān)鍵路徑bin,app_Code, Web References,App_Browsers,App_GlobalResources,App_LocalResources發(fā)生變化。
如何記錄ASP.NET站點(diǎn)重啟的原因呢?
原文鏈接;http://www.cnblogs.com/yukaizhao/archive/2011/08/12/asp-net-site-restart-reasons.html
【編輯推薦】
- 詳解ASP.NET MVC 3新的Layout布局系統(tǒng)
- ASP.NET MVC中很酷的jQuery驗(yàn)證插件
- ASP.NET MVC 3新特性全解析
- ASP.NET MVC 3讓你瘋狂的五大理由
- 詳解ASP.NET MVC 3 beta新特性