XP マシンで ASP.NET 2.0 アプリケーションを実行しようとしています。私の知る限り、すべてが正しく構成されています。ただし、次のメッセージが表示されます。
サーバー アプリケーションを利用できません
また、毎回アプリケーション イベント ログに次の 2 つのイベントが表示されます。
aspnet_wp.exe (PID: 3352) が予期せず停止しました。
ASP.NET プロセス ID にグローバル アセンブリ キャッシュへの読み取りアクセス許可がないため、要求を実行できませんでした。エラー: 0x80070005 アクセスが拒否されました。
以前は、ASP.NET アプリケーションはこのマシンで正常に動作していました。
次の手順を試しましたが、うまくいきませんでした。
- サイトのホーム ディレクトリに対する読み取りアクセス許可を ASPNET アカウントに付与しました
- aspnet_regiis -i を使用して ASP.NET 2.0 を再インストールしました
- aspnet_regiis -ga <my machine name>\ASPNET を使用して、ASPNET アカウントにアクセス許可を付与しました
- CACLS %WINDIR%\assembly /e /t /p <my machine name>\ASPNET:R を使用して、ASPNET アカウントに GAC への読み取りアクセス許可を付与しました。
- IIS 内でサイトの ASP.NET バージョンを 2.0 に設定しました
他に何ができるかわからない!
Process Monitor を使用すると、問題が直接発生しました。ヒントをくれたムンに感謝します。
これは非常にわかりにくい問題でした。以前にアセンブリ バインディング ログ ビューア (fuslogvw.exe) を使用し、カスタム パス オプションを使用してすべてのバインドをディスクに記録するように設定していました。ただし、ASPNET アカウントには、そのカスタム パスへのアクセス許可がありませんでした。したがって、デフォルトのパスを使用するように戻すと、問題は解決しました。そのカスタム パスに対する読み取り/書き込みアクセス許可を ASPNET アカウントに付与することも機能し、バインド ログを無効にすることもできます。