2011-12-30 11 views
3

Webアプリケーションで何らかの理由で要求があったたびにApplication.Endが呼び出され、アプリケーションが再起動されます。 Applicaion_Endにブレークポイントを設定すると、便利なスタックトレースが得られません。さらに、イベントビューアにはエントリがありません。ASP.NET Webアプリケーションを再起動する理由を調べる方法

  • 、追加、変更、またはアプリケーションのbin フォルダからアセンブリを削除:MSDNによると、次のようにアプリケーションの再起動を引き起こす可能性があります。
  • App_GlobalResourcesまたはApp_LocalResourcesフォルダからローカリゼーションリソースを追加、変更、または削除する。
  • アプリケーションのGlobal.asaxファイルの追加、変更、または削除。
  • App_Code ディレクトリのソースコードファイルの追加、変更、または削除。
  • プロファイル設定の追加、変更、または削除。
  • App_WebReferencesディレクトリの Webサービス参照の追加、変更、または削除。
  • アプリケーションのWeb.configファイルの追加、変更、または削除。

私のコードはアプリケーションの再起動を引き起こすファイルを変更すると思います。アプリケーションの再起動の原因を突き止める方法はありますか?

編集:私は今、コードをステップ実行し、エクスプローラでタイムスタンプを見て問題を解決しました。アプリケーションの起動時に、アクセスデータベースから値を読み取り、.ldbファイルを作成して削除します。しかし、この質問はまだ答えられていません。アプリケーションを再起動させるようなイベントの記録を保持するログはありますか?

+0

iisで作業していますか?アプリのプールリサイクルによる再起動である可能性があります。 – BigMike

+2

なぜファイルやフォルダを変更日付で並べ替えていないのですか? –

+0

@BigMikeはい、私はIIS上にいます。私は、アプリケーションプールリサイクルのすべてのログエントリを有効にしたが、イベントビューアにはエントリがないので、アプリケーションを再起動するだけだと思う​​。また、Visual Studio Development Serverでも同じことが起こります。 –

答えて

4

Tess Ferrandezさんは、App Domainリサイクルの理由を判断する方法について、blog postと書いてあります。 Tessは、再起動イベントのログを記録する方法についてこれを説明しています。

appdomainの再起動の原因を特定するにはどうすればよいですか? ASP.NET 2.0では、組み込みの正常性監視イベントを使用して、再起動の理由とともにアプリケーションの再起動を記録できます。 を行うには、このあなたは Cでマスターweb.configファイルを変更:\ WINDOWS \ Microsoft.NET Frameworkの\ \ v2.0.50727のCONFIGディレクトリ\と

<healthMonitoring> 
    <rules> 
    <add name="Application Lifetime Events Default" 
     eventName="Application Lifetime Events" 
     provider="EventLogProvider" profile="Default" minInstances="1" 
     maxLimit="Infinite" minInterval="00:01:00" custom="" /> 

をオンにするには、次のセクションに 追加IIS6のログ記録には次のものを使用できます:

cscript adsutil.vbs Set w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255 

IIS7の場合は、IISマネージャーの[アプリケーションプール] - [詳細設定]で制御できます。

+0

あなたが参照しているApp Pool - Advanced Settingsはヘルスモニタリングと同じものだとは思いません。これらの設定はリサイクルイベントに固有です。彼らは、healthMonitoringのeventMappings要素で設定されたデフォルトのヘルスモニタリングイベントの全範囲を網羅していません。私が知る限り、.NETとIISのすべてのバージョンに対して、マシンレベルのweb.configのhealthMonitoring設定を使用する必要があります。また、電子メールプロバイダー、イベントログプロバイダー、SQLプロバイダーなど、さまざまなプロバイダーをセットアップしてヘルスイベントをキャプチャすることもできます。 –

関連する問題