7

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 アカウントに付与することも機能し、バインド ログを無効にすることもできます。

4

5 に答える 5

2

必要なアクセス許可は次のとおりです: http://msdn.microsoft.com/en-us/library/kwzs111e.aspx

詳細: http://support.microsoft.com/default.aspx?kbid=811320

実行したコマンドで十分ですが、確認する価値があります:)

于 2008-10-14T12:53:26.050 に答える
2

Process Monitorは、この種の問題のトラブルシューティングにも役立つ場合があります。aspnet_wp.exe を含むすべてのアクティビティを表示するようにフィルターを設定すると、アクセスしようとしているファイルが表示され、それに応じてアクセス許可を更新できるようになります。

于 2008-10-14T13:07:32.183 に答える
1

これに答えるには遅すぎることはわかっています。今日も同じ問題がありました。コマンドプロンプトで以下を実行し、問題を修正しました

aspnet_regiis -ga machinename\ASPNET
于 2012-03-14T08:43:49.537 に答える
0

Visual Studio がアセンブリの一時コピーを作成すると、インデックス サービスがウイルスのスキャンを開始し、デバッガが開こうとするため、「アクセスが拒否されました」というメッセージが表示されることがあるため、ASP.NET でこの問題が発生していました。共有ファイル。一時アセンブリ ディレクトリにインデックスを作成しないようにインデックス サービスに指示すると、問題は解決しました。

于 2008-10-14T13:37:28.847 に答える
0

これで問題は解決しました。共有したいと思いました:

これが IIS 5.1 (基本的に古いバージョンの IIS) の場合は、(inetmgr から) 仮想ディレクトリを右クリックし、[すべてのタスク] > [アクセス許可ウィザード] に移動します。[テンプレートから新しいセキュリティ設定を選択する] オプションを選択します。次に、[公開 Web サイト] を選択します。

于 2012-11-28T23:00:39.477 に答える