web-dev-qa-db-ja.com

IIS 7.5フォルダーとWebサイトのアクセス許可

状況:

  • IISサーバーマネージャーで作成されたテストWebサイト
    • 基本設定/接続方法:アプリケーションユーザー
    • 認証/匿名認証/編集:アプリケーションプールID
  • 物理パスには、「IIS AppPool\DefaultAppPool」の読み取りと実行、フォルダーの内容の一覧表示、および読み取りアクセス許可(および継承されたフルコントロールを持つ管理者/システム)があります[.____]。
    • 単一のファイルindex.html(および上記の設定で生成されたweb.config)が含まれています

エラー:

  • HTTPエラー500.19-内部サーバーエラー
  • 設定エラー権限が不十分なため、設定ファイルを読み取ることができません

質問:

  • アプリIDで機能させるにはどうすればよいですか? (匿名認証と物理フォルダーのrxアクセス許可の両方でiusrを使用して動作するようになりました)
  • 私はそれを間違ってやっていますか、それとも私が見つけたほとんどのリソースが示唆しているように見えるので、これは確かにベストプラクティスですか?

また、本当に感謝しています良いチュートリアルIIS 7.5の「基本」について-learn.iisでこの特定の質問に対する答えを見つけることができませんでした。ネットや他のいくつかのサイトでは、一般的に、そこで利用可能なリソースが非常に断片化されていることがわかりました。

関連:IIS 7.5 Webサイトディレクトリのアクセス許可Windows Server 2008 R2-IIS7.5-Webサイトのアクセス許可

3
Razor

通常のIIS7.5のすぐに使用可能なデフォルトを使用してWebサイトを作成した場合、「テストWebサイト」にもアプリケーションプールが作成されます。

サイトがリクエストを実行するデフォルトのIDはApplicationPoolIdentityです。 ApplicationPoolIdentityは、オンザフライで作成され、サイトのアプリケーションプールのIDを表す特別に合成されたアカウントです。

あなたは次のように述べています。

物理パスで「IISAppPool\DefaultAppPool」が読み取られて実行されます

これは、500.19エラーが発生する理由を説明します。サイトを「DefaultAppPool」アプリケーションプールに割り当てない限り、この権限は何の役にも立ちません。

サイトのApplicationPoolIdentityに(少なくとも)読み取りおよび実行権限を割り当てる必要があります。これを行うには、コマンドラインから次を実行します。

icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)

ここで、<app_pool_name>は、テストサイト用に作成されたアプリケーションプールの名前です。次のコマンドを実行すると、その名前を見つけることができます。

appcmd list app /site.name:"<your site name>"

これにより、次のような名前が返され、サイトのアプリケーションプールの名前が表示されます(ApplicationPoolIdentityの名前は次のとおりです。

APP "test site/" (applicationPool:test site)
6
Kev