aspの記録方法Netサイトが再起動した理由は?

6131 ワード


サイトでのApplication_の実行Endイベントに記録方法を追加します.Globalでasax.csファイルに次のコードを追加すればいいです.
view source print ? 01 void Application_End( object sender, EventArgs e) 02 { 03      //  Code that runs on application shutdown 04      RecordEndReason(); 05 } 06     07 protected void RecordEndReason() 08 { 09      HttpRuntime runtime = (HttpRuntime) typeof (System.Web.HttpRuntime).InvokeMember( "_theRuntime" , 10          BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetField, 11          null , 12          null , 13          null ); 14     15      if (runtime == null ) 16          return ; 17     18      string shutDownMessage = ( string )runtime.GetType().InvokeMember( "_shutDownMessage" , 19          BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, 20          null , 21          runtime, 22          null ); 23     24      string shutDownStack = ( string )runtime.GetType().InvokeMember( 25          "_shutDownStack" , 26          BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, 27          null , 28          runtime, 29          null ); 30     31      EventLog log = new EventLog(); 32     33      log.Source = "ASP.NET 2.0.50727.0" ; 34      log.WriteEntry(String.Format( "\r
\r
_shutDownMessage={0}\r
\r
_shutDownStack={1}"
, shutDownMessage, shutDownStack), EventLogEntryType.Information); 35 }
以上の方法では、再起動の原因と再起動時のスタック情報をwindowsのイベントビューアに記録します.もちろん、テキストファイルにも記録できます.
 
 
この方法はscottguのブログから見ました.
 
結果としてAsp.Netサイトの再起動の10の理由
 
Asp.Netサイトは時々わけのわからない再起動がありますが、何が原因なのかは分かりませんが、振り回された後、Aspをまとめました.Netサイトの再起動の10の理由
1.アプリケーション・プールを回収すると、サイトが再起動します.記録の原因は次のとおりです.
HostingEnvironment initiated shutdown HostingEnvironment caused shutdown
2.アプリケーションプールの回収ルールを変更すると、再起動、再起動の原因を記録します.
HostingEnvironment initiated shutdown HostingEnvironment caused shutdown
3.IISでサイトの名前を変更し、再起動の原因にならない
4.サイトのルートディレクトリのプロファイルwebを変更する.config、プロファイルコメントにスペースをいくつか追加すると再起動します.記録の再起動の原因は次のとおりです.
CONFIG change HostingEnvironment initiated shutdown
しかし、サブディレクトリのwebを変更します.configファイルがすぐに再起動するとは限らない
5.aspxを修正すると、masterファイルが再起動するとは限らない.しかし、変更するたびに再コンパイルが行われ、再コンパイル回数が15回に達するとサイトが再起動します.再起動の原因は次のとおりです.
Recompilation limit of 15 reached HostingEnvironment initiated shutdown
15回後にこの数字を再起動するとwebで使用できます.configで設定し、compilationのnumRecompilesBeforeAppRestart属性値を変更すればよい.

6.binディレクトリのpdbファイルを削除すると、再起動が発生します.記録の再起動の原因は次のとおりです.
Change Notification for critical directories.
binディレクトリの下に空のフォルダを新規作成すると、サイトが再起動します.再起動の原因は次のとおりです.
Directory rename change notification for 'D:\projects\TestWebApp\TestWeb'.T estWeb dir change or directory rename
binディレクトリの下で空のフォルダを削除すると、サイトが再起動します.記録の原因は次のとおりです.
Directory rename change notification for 'D:\projects\TestWebApp\TestWeb'.T estWeb dir change or directory rename
7.Globalを修正する.asaxファイルはサイトの再起動を引き起こし、いくつかのスペースを追加しても再起動します.記録の再起動の原因は次のとおりです.
Change in GLOBAL.ASAX HostingEnvironment initiated shutdown
8.対App_Codeディレクトリを変更するとサイトが再起動します
サイトのルートディレクトリにAppという名前を追加します.Codeのフォルダは、再起動の原因となります.
Change Notification for critical directories. App_Code dir change or directory rename
Appの削除Codeフォルダによってサイトが再起動されます.再起動の理由は次のとおりです.
File Change Notification Error in D:\projects\TestWebApp\TestWeb\app_code
Change Notification for critical directories.
App_Code dir change or directory rename
App_Codeフォルダの下にcsファイルを新規作成または削除すると、サイトが再起動し、記録される原因は次のとおりです.
Change Notification for critical directories. App_Code dir change or directory rename
9.キーパスを変更すると、サイトが再起動されます.キーパスは次のとおりです.
bin, App_Code, Web References,App_Browsers,App_GlobalResources,App_LocalResources 
10.その他のウイルス対策ソフトによるファイルのスキャンは、aspを引き起こす可能性がある.Netプロセスは,ファイルやキーパスが変化したと誤認し,再起動を招く.
以上、私がまとめた結果です.Netサイトが再起動した10の理由.総じて3つの側面がサイトの再起動を引き起こす:一方でIIS構成が変化する;一方asp.Net関連ファイルプロファイル、globalファイル、aspx、ascx、masterなどのタイプのファイルに変法が発生します.3つ目の側面はキーパスbin,app_Code, Web References,App_Browsers,App_GlobalResources,App_LocalResourcesが変わりました.
どうやって記録する?Netサイトが再起動した理由は?
 
http://www.cnblogs.com/yukaizhao/archive/2011/08/12/asp-net-site-restart-reasons.html