ASP.NET MVC 3プロジェクトを作成し、開発時にWebサーバーとしてIIS Expressを使用しています。デバッグしようとすると、次のエラーメッセージが表示されます。
これはどのように解決できますか?
「/」アプリケーションのサーバーエラー。
アクセスが拒否されました。説明:この要求の処理に必要なリソースへのアクセス中にエラーが発生しました。サーバーは、要求されたURLへのアクセス用に構成されていない可能性があります。
エラーメッセージ401.2。:権限がありません:サーバーの構成によりログオンに失敗しました。指定した資格情報とWebサーバーで有効になっている認証方法に基づいて、このディレクトリまたはページを表示する権限があることを確認します。さらに支援が必要な場合は、Webサーバーの管理者に連絡してください。
Visual Studioを使用している場合は、ソリューションエクスプローラーでプロジェクトを左クリックし、Windows認証プロパティを有効に変更することもできます。 プロパティウィンドウ。
この問題の原因は、IIS ExpressがWindowsAuthenticationを許可していないことでした。これは設定することで有効にできます
<windowsAuthentication enabled="true">
c:\ Users [ユーザー名]\Documents\IISExpress\configにあるapplicationhost.configファイル。
IIS Expressでのホスティング:1.ソリューションエクスプローラーでプロジェクトをクリックして、プロジェクトを選択します。 2. [プロパティ]ペインが開いていない場合は、開きます(F4)。 3.プロジェクトの[プロパティ]ペインで:a)[匿名認証]を[無効]に設定します。 b)「Windows認証」を「有効」に設定します。
私の場合、ファイルを開く必要がありました。
C:\...\Documents\IISExpress\config\applicationhost.config
ファイル内にこれがありました:
<authentication>
<anonymousAuthentication enabled="true" User="" />
User=""
部分を削除しました。私はこの事がどのようにそこに着いたのか本当に知りません... :)
注:applicationhost.config
の最後に次のようなものがあることを確認してください。
.
.
.
<location path="MyCompany.MyProjectName.Web">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
</configuration>
こちらもご覧ください: https://stackoverflow.com/a/10041779/114029
これで、期待どおりにログインページにアクセスできます。
私の場合、VSからアプリを前回実行したときにURLが予約されました。コンソールで実行することでこれを見ることができました:
netsh http show urlacl
この予約を削除するには、これをelevatedコンソールで実行しました。
netsh http delete urlacl http://127.0.0.1:10002/
これらの手順を見つけました こちら 私の問題を解決しました。
私はVS2013を使用しています
このエラーを取り除くには、Administrative Mode
でVisual Studioを実行する必要がありました。
私も同じ問題を抱えていて、ついに克服できました。
Solution Explorer
→Right click on project
→Properties
→Web tab
→Project Url
別のポート番号を選択しましたが、すべてうまくいきました!
上記のどれも私にとってはうまくいきませんでした。これは今日まで私のために働いていました。その後、ラップトップでホスト接続の作成に取り組んでおり、ワイヤレスネットワーク接続とインターネット接続を共有していたことに気付きました。
問題を解決するには:
[コントロールパネル]> [ネットワークとインターネット]> [ネットワーク接続]に移動します
セカンダリワイヤレスネットワーク接続(私の名前はワイヤレスネットワーク接続2)を右クリックして、[プロパティ]をクリックします。
上部の[共有]タブに移動します。
「他のネットワークユーザーにこのコンピューターのインターネット接続を介した接続を許可する」と表示されているボックスのチェックを外します。
[OK]をクリックし、[適用]をクリックします。
お役に立てれば!
Web.configファイルを開いて、このセクションを見つけて削除しました。
<authorization>
<deny users="?" />
</authorization>
私のサイトは立ち上がったが、認証に関する問題がある。
エラーページはログインページの背後にありましたが、コントロールの1つにログインページのエラーがあり、無限ループが発生しました。
問題のあるページからすべてのコントロールを削除し、正しいコントロールが検出され修正されるまで、それらを1つずつ追加し直しました。
Provider Hostedを使用してSharePoint用のシンプルなアプリを作成しようとして、この問題に苦労していました。
Applicationhost.configを通過した後、セクションで、basicAuthenticationはfalseに設定されました。私のシナリオでは、401.2を超えるようにtrueに変更しました。 IIS Expressのapplicationhost.configを見つける方法の他のリンクがたくさんあります。
IIS EXPRESSでこの正確な問題を修正しました。アプリケーションHost .configを以下の特定の場所セクションに編集することにより、EXPRESSで修正しました。 Visual Studio 2012でWindows認証を設定していましたが、XMLに入ったときはこのように見えました。
図に示すように、Windows authタグを以下に追加する必要がありました。
<windowsAuthentication enabled="true" />
<location path="MyApplicationbeingDebugged">
``<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<!-- INSERT TAG HERE -->
</authentication>
</security>
</system.webServer>
</location>
この「完全な」答えはどこにも見られませんでした。これを投稿した後、ポート番号の変更に関するものを見ました。
Visual Studioのプロジェクトプロパティで、そのプロジェクトURLが、サイトバインディングのIISで使用されているのと同じURLまたはポートに割り当てられていないことを確認してください。
私はこれの「なぜ」を探していますが、私の頭の上の私の仮定は、IISとVisual StudioのIIS expressの両方が仮想ディレクトリを作成するときに同じディレクトリを使用することですVisual Studioは新しい仮想ディレクトリのみを作成でき、サイトにバインドを適用するときにIISが作成したものを変更できません。
理由を修正してください。