web-dev-qa-db-ja.com

IIS 7.5(Windows 7)-HTTPエラー401.3-不正

Localhostで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.

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

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

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

82
Nathan Ridley

IIS 7では、IISを介してファイルにアクセスするためのデフォルトユーザーとして「IUSR」も作成されます。したがって、ユーザーIUSRにファイル/フォルダーへの読み取りアクセス権を付与します。

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

[編集]-> [追加]-> [詳細]-> [検索開始]-> [IUSRを選択]をクリックし、[OK]を4回クリックします。

124
Ejaz

別のフォーラムでこれを見つけたので、私は信用できませんが、私はそれを行い、それは私のために働きました:

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

[認証]をクリックし、[匿名認証]を選択してから[編集]をクリックします。最初のウィンドウで[アプリケーションプールID]を選択し、[OK]をクリックします。 」

33
Stryder

IIS 7.5 on Windows Server 2008)でも同じ問題が発生しました。私にとっては、次の手順で問題を解決できました。

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

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

22
Mark

ログインメカニズムを使用していますか、それとも匿名認証を使用していますか?

匿名の場合は、IIS managerに移動し、[認証]アイコンで匿名認証名を選択して、[アクション]の[編集]ボタンをクリックします。そこで指定されているユーザーを確認し、サイトファイル/フォルダ。

何らかの形式のログインシステムがある場合は、ログインしているユーザーにサイトのファイルへの権限があることを確認し、実行しているアプリケーションプールのIDに少なくとも読み取りアクセス権があることを確認してくださいファイルに。

10
MattB

IIS 8 work:1)にこんにちはIIS仮想ディレクトリ-2)認証-3)匿名認証-4)アプリケーションプールIDを設定します。

3
Alex

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

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

アプリプールの仮想IDは "IIS AppPool \"という名前であるため、DefaultAppPoolを使用している場合、そのIDは "IIS AppPool\DefaultAppPool"になります。

詳細については this の記事を参照してください。

3
ntcolonel

承認された回答のコメントからの情報を含めるための回答。

IIS 7.5 on Windows Server 2008r2)では、IIS_IUSRSグループが既に含まれていますが、ファイルへのアクセス/ダウンロードを許可するには、別のIUSRグループを権限に追加する必要があります。

アカウントの違いの詳細については、 IISの組み込みユーザーアカウントとグループアカウントについて を参照してください。

2
Chris Pickering

上記の答えはどれも役に立たなかったので、win7とIIS7を実行しているローカルマシンでこの問題にぶつかったときに、この問題を解決する方法を共有したいと思いました。

  • IIS7->アプリケーションプールに移動します

    サイトのアプリケーションプール(私の場合はDefaultAppPool)を見つけ、右クリックして[詳細オプション]を選択します。

    「プロセスモデル」の章を見つけて、「ID」フィールドを、Webサイトフォルダー内のファイルにアクセスできることがわかっているユーザー(私の場合はローカル管理者)に変更します。

2

これだけでは不十分な場合:

これで動作するようになりました:

  • Webサイトの機能ビューを開きます。
  • ハンドラーマッピングに移動します。
  • .cshtmlのパスを見つける
  • 右クリックして[機能の権限を編集]をクリックします
  • 実行を選択します
  • OKを押します。

今あなたのウェブサイトを更新してみてください。

1
nixkuroi

これを試してください...コンピューターの管理に移動します(コンピューターを右クリックして[管理]を選択します)->ローカルユーザーとグループ->ユーザー-> IUSR_MACHINENAMEを選択->プロパティを右クリック->メンバーであることを確認ゲストではなくIIS_WPGとユーザーの。


Server 2008 R2を使用していますが、IUserアカウントがリストに表示されません。

1
Matt

aspnet_regiis -cを使用してIISのクライアント側をインストールしてから、IISをリセットしてください。

1
titilola