IIS 7.5 (Windows 7) - HTTP エラー 401.3 - 権限がありません

IIS 7.5 (Windows 7) - HTTP エラー 401.3 - 権限がありません

ローカルホストで ASP.Net Web サイトをテストしようとしているのですが、次のエラーが発生します:

HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of
the access control list (ACL) configuration or encryption settings for
this resource on the Web server.

ウェブサイトのアプリケーション フォルダーには、完全な読み取り/書き込み権限を持つ次のユーザーがいます。

  • ネットワークサービス
  • IIS_IUSRS
  • システム
  • 管理者
  • ネイサン(私)

これを修正するにはどうすればいいでしょうか?

答え1

IIS 7 は、IIS 経由でファイルにアクセスするための既定のユーザーとして「IUSR」も作成します。そのため、ユーザー IUSR にファイル/フォルダーへの読み取りアクセス権を付与します。

IUSR に読み取りアクセス権があるかどうかを確認するには、どうすればよいでしょうか? 右クリック -> フォルダー -> プロパティ -> セキュリティ タブで、IUSR がグループまたはユーザー名のリストに含まれているかどうかを確認します。含まれていない場合は、

編集 -> 追加 -> 詳細設定 -> 今すぐ検索 -> IUSR を選択して OK を 4 回クリックします。

答え2

これは別のフォーラムで見つけたものなので、自分の功績とは言えませんが、自分でやってみてうまくいきました:

「IIS7 で匿名認証設定を変更してみてください:

「認証」をクリックし、「匿名認証」を選択した後、「編集」をクリックします。開いたウィンドウで「アプリケーション プール ID」を選択し、「OK」をクリックします。

答え3

Windows Server 2008 上の IIS 7.5 でも同じ問題が発生しました。私の場合は、次の手順で問題を解決できました。

  • IISマネージャーを開く
  • 編集したいウェブサイトをクリックします
  • ダブルクリック認証
  • クリック匿名認証をクリックし、編集...行動
  • 使用するように変更アプリケーション プール ID特定のユーザーではなく資格情報(私の場合は IUSR)

この変更を行った後、401.3 エラーは消えました。

答え4

デフォルトでは、IIS 7.5 では、各アプリケーション プールは独自の「仮想 ID」で実行されます。アプリケーション プールの ID は、ファイル システムへのアクセスに使用される資格情報です。

その仕組みはよくわかりませんが、Microsoft は、特定のインストール シナリオでサービス アカウントを作成する必要性を軽減しながら、既定のインストールのセキュリティを強化するためにこれを行いました。いずれにしても、結局のところ、この「仮想 ID」アカウントを識別してディレクトリへのアクセスを許可するか、App Pool のサービス アカウントを変更する必要があります。

アプリケーション プールの仮想 ID の名前は「IIS AppPool\」なので、DefaultAppPool を使用している場合、その ID は「IIS AppPool\DefaultAppPool」になります。

見るこれより詳しい情報については記事をご覧ください。

関連情報