0

ASP.Net Web サイトを、あるサーバーの UNC パスから新しいより大きなサーバーの新しい UNC パスに移行しました。

でコード アクセス セキュリティのアクセス許可をいじりcaspolAppPool に適切な設定があることを確認した後、Web サイトは正常に動作し、「PolicyException: 必要なアクセス許可を取得できません」という奇抜な CAS エラーは発生しません。

ただし、私が抱えている問題は、独自の Web アプリケーションとして構成されたサブディレクトリがあることです。そのアプリは、イエロー スクリーン オブ デス エラーを表示しています。

System.Security.SecurityException: タイプ 'System.Web.AspNetHostingPermission、System、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求が失敗しました。

サイトが完全な信頼で実行されていることがわかったのに、なぜこのサブディレクトリ アプリが機能しないのですか?

4

1 に答える 1

0

(質問と同時に自分の質問に答える)

多くの設定が親サイトから継承されますが、次の項目は必ずしも継承されるわけではありません (サブディレクトリ アプリの [詳細設定] ダイアログで利用できます)。

  • アプリケーション プール
  • 物理パス
  • 物理パス資格情報
  • 物理パス クレデンシャル ログオン タイプ
  • 有効なプロトコル

IIS7 の [詳細設定] ダイアログのスクリーンショット

アプリケーションの詳細設定を見ると、物理パスがまだ古いサーバーの UNC パスを参照していることがわかります。CAS ポリシーを変更すると、これは機能しなくなります。ここでUNCパスを修正すると、問題が解消されました。

ボーナスポイント

もう 1 つの兆候は、アプリケーション ログの警告レベルのエントリでした。

イベント コード: 3006
イベント メッセージ: パーサー エラーが発生しました。
...
イベント詳細コード: 0

アプリケーション情報:

アプリケーション ドメイン: /LM/W3SVC/3/ROOT/ [編集済み]
信頼レベル: フル
アプリケーション仮想パス: [編集済み]
アプリケーション パス: [古いUNC パス]
マシン名: [編集済み]

プロセス情報:

プロセス ID: 4592
プロセス名: w3wp.exe
アカウント名: [編集済み]

例外情報:

例外の種類: HttpException
例外メッセージ: 型 'System.Web.AspNetHostingPermission、System、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求が失敗しました。

于 2012-07-21T21:22:34.373 に答える