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