ディレクトリの「401Unauthorized」


85

ローカルマシンでプロジェクトを実行した場合は発生しないため、これはIISエラーであると思います。

私は自分のスタイルシートを ~/Content/css

そのディレクトリ内のファイルはページに読み込まれず、それらに直接移動すると、サーバーエラーが発生します。

401-無許可:資格情報が無効なため、アクセスが拒否されました。

指定した資格情報を使用してこのディレクトリまたはページを表示する権限がありません。

これはそのディレクトリでのみ発生します。他のファイルへのアクセスに問題はありません。これを止めるためにIIS7でやらなければならないことがありますか?

回答:


46

それはあなたが持っていない可能性があるIUSR_のコンピュータ名、そのフォルダのアクセス許可を。クイックスキャンを実行しましたが、必要な情報がここにあるようです。

そうでない場合は、ブラウザからユーザー名とパスワードの入力を求められますか?もしそうなら、それはIISは、統合認証のみを使用するように設定されている可能性があり、ここで説明したように


4
アプリケーションプールを使用してデータベース/ファイルシステムへのアクセスを管理している場合は、これを行わないでください。以下のimanabidiの答えを見るために読んでください。
ライアンシリントン

おかげで、私の場合、私は完全に制御できるすべての人を追加しました
MorenajeRD 2018年

8
support.microsoft.com/kb/313075-このページはもう存在しません。@ m.edmondson
Divya

293
  1. IISを開き、401の原因となっているサイトを選択します
  2. IISヘッダーで認証プロパティを選択します
  3. 匿名認証を選択します
  4. それを右クリックし、[編集]を選択して、[アプリケーションプールID ]を選択します
  5. サイトを再起動すると、機能するはずです

13
それは動作しますが、なぜですか?もう少し説明してもらえますか?
nthapa 2014年

2
受け入れられた回答に記載されているように、デフォルトでは、匿名認証の「特定のユーザー」はIUSRであるため、これは機能しているように見えます。ただし、アプリケーションプールに設定されたIDには、Webサイト全体に対するアクセス許可が必要です。そうでない場合、サイトは読み込まれません。したがって、私のIUSRアカウントにはアクセス権がありませんでしたが(実際には存在しないようです)、アプリケーションプールが使用しているアカウントにはアクセス権があります。
ヨハン

6
これは機能しますが、紛らわしいのは、以前は約2年間問題なく機能していましたが、今日では理由は不明ですが、機能しなくなりました...ソリューションで修正されました。
Serj Sagan 2015

この問題に何時間も費やしましたが、これが見つかるまで運がありませんでした。リリースモードで公開したMVC5 Webアプリがあり、Chromeでサイトをロードすると、コンテンツはロードされますが、スタイルはロードされません。リンクはそこにあり、パスは正しいですが、それらはすべて空でした!この修正で私の問題は解決しました。
GIVE-ME-CHICKEN

私の場合、匿名認証を有効にする必要がありました。アプリケーションの作成時にデフォルトで無効になっていたためです
Paul

13
  • 開いた IISをます
  • 問題に直面しているサイトを選択してください

  • 以下を選択

ここに画像の説明を入力してください

-匿名認証を右クリックし、編集をクリックして以下に従ってください

ここに画像の説明を入力してください


5

指定した資格情報を使用してこのディレクトリまたはページを表示する権限はありません。

これは、ユーザーがActiveDirectoryを介してすでに認証されているにもかかわらず発生しました。

Access Deniedエラーには多くの原因が考えられますが、Webアプリケーションからすべてを正しく構成していると思われる場合は、少し詳細を忘れている可能性があります。AuthenticatedUsersにWebアプリケーションディレクトリへのアクセスを許可する適切な権限を付与してください。

この問題を解決するために私が取った手順は次のとおりです。

  1. Webアプリケーションが保存されているディレクトリを右クリックし、[プロパティ]を選択して、[セキュリティ]タブをクリックします。

  2. [編集...]、[追加...]ボタンの順にクリックします。[選択するオブジェクト名を入力してください]に[認証済みユーザー]と入力し、[追加]をクリックします。]]ボタンクリックします。「選択するオブジェクト名を入力してください」に「認証済みユーザー」と入力します。

  3. [ OK]をクリックすると、ユーザー名の1つとして[認証されたユーザー]が表示されます。まだチェックされていない場合は、下端の[認証されたユーザーのアクセス許可]ボックスに適切なアクセス許可を付与します。

  4. [ OK]を2回クリックして、ダイアログボックスを閉じます。すぐに有効になりますが、確認したい場合は、WebアプリケーションのIISを再起動できます。

ブラウザを更新すると、Webページが表示されます。

お役に立てれば!


2

サーバー上のフォルダーのアクセス許可を確認し、アプリケーションの実行に使用しているアカウントがそのフォルダーにアクセスできることを確認する必要があります。


0

私にとって、匿名ユーザーアクセスはサーバーレベルでは問題ありませんでしたが、私の「仮想」フォルダーの1つだけで変化しました。

IISが仮想フォルダレベルでも「認証」設定を持っていることを知るために、私はかなりの創設者であり、同僚の助けを借りました。これが私の苦境にある他の誰かに役立つことを願っています。


0

私たちの場合、それはアプリで指定されたWindows統合認証でした web.config

しかし、windows-authモジュールはIISマシンにまったくインストールされていませんでした。

別の考えられる理由を追加するだけです。


-4

私が見つけたもう1つの簡単な修正は、ローカルIISサイトを(IISマネージャー内から)削除してから、VisualStudioのWebプロジェクトの「プロパティ」から仮想ディレクトリを再作成することでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.