次の方法で共有


ASP.NET アプリケーションでのウイルス対策スキャンから除外するフォルダー

この記事は、一部のフォルダーがウイルス対策ソフトウェアによって除外されていない場合に、ASP.NET アプリケーションの AppDomain がアンロードされる可能性がある問題を解決するのに役立ちます。

元の製品バージョン: ASP.NET、.NET Framework 4.8、4.7、4.6、4.5.2、3.5 Service Pack 1
元の KB 番号: 3126034

まとめ

ASP.NET アプリケーションでは、特定のフォルダーをウイルス対策スキャンから除外する必要があります。 そうでない場合、スキャンによって不注意で AppDomain アンロードが発生する可能性があり、これによりパフォーマンスの問題が発生します。

ASP.NET では、 ReadDirectoryChangesW Win32 関数を使用してディレクトリとファイルを監視します。 次のシナリオでは、ASP.NET AppDomain クラスがアンロードされます。

  1. アプリケーションの物理ルート パスとそのすべてのサブディレクトリで、サブディレクトリ名の変更または削除が監視されます。 これらの変更のいずれかが発生した場合、 AppDomain はアンロードされます。

  2. アプリケーション ルート フォルダーの binApp_CodeApp_WebReferencesApp_GlobalResources、および App_Browsers サブディレクトリは、作成、削除、名前変更、ACL の変更、最終書き込み時刻への変更、およびサイズの変更について監視されます。 これらの変更のいずれかが発生した場合、 AppDomain はアンロードされます。

  3. machine.configファイルとルート web.config ファイルは、変更を監視します。 これらのファイルのいずれかを変更すると、 AppDomainがアンロードされます。

  4. 親アプリケーションの web.config ファイルが監視されます。 このファイルを変更すると、 AppDomainがアンロードされます。

  5. アプリケーション ルートの web.config ファイルが監視されます。 このファイルを変更すると、 AppDomainがアンロードされます。

  6. 一時 ASP.NET ファイル フォルダーのハッシュ サブディレクトリにある hash.web ファイルが監視されます。 この監視は、 ClientBuildManager とランタイム BuildManager の両方がアプリケーション ファイルを更新する開発シナリオをサポートするために追加されました。 ビルド マネージャーは 2 つ存在するため、同期を維持する必要があり、その目的のために hash.web ファイルが使用されます。

  7. アプリケーションの任意のサブディレクトリにある web.config ファイルが監視されます。 このファイルを変更すると、 AppDomainがアンロードされます。

  8. 各仮想サブディレクトリの App_LocalResources サブディレクトリは、作成、削除、名前変更、ACL の変更、最終書き込み時刻への変更、サイズの変更を監視します。 これらの変更のいずれかが発生した場合、 AppDomain はアンロードされます。

監視対象のファイルとフォルダーに基づいて、ウイルス対策スキャンからの除外には次のディレクトリをお勧めします。

  • ASP.NET アプリケーションのルート ディレクトリとそのすべてのサブディレクトリ。
  • .NET Framework 構成ファイル ディレクトリ。 これは、.NET Framework のバージョンと、ASP.NET アプリケーションが 32 ビット プロセスと 64 ビット プロセスのどちらで実行されているかによって異なります。
  • ASP.NET アプリケーションの親アプリケーションのルート ディレクトリ。
  • [一時 ASP.NET ファイル] フォルダー。

また、次の IIS ディレクトリを、ASP.NET アプリケーションのウイルス対策スキャンから除外することをお勧めします。

  • %systemroot%\System32\inetsrv\config
  • %systemdrive%\inetpub\temp

詳細

AppDomainアンロードを回避するには、FCNModeを無効にします (FCN はファイル変更通知を表します)。 FCNModeを無効にする方法の詳細については、Web サイトASP.NET 2.0 に接続されているアプリケーションが応答を停止しているように見える場合がありますを参照してください。 ただし、FCNMode を無効にすることはお勧めしません。