ページの関連構成データが無効なエラーであるため、要求されたページにアクセスできません


480

IISマネージャーを使用して、自分のasp.net WebサイトをIISにアップロードしたい。しかし、これを行うと、次のエラーが発生します

HTTPエラー500.19-内部サーバーエラーページの関連する構成データが無効であるため、要求されたページにアクセスできません

モジュール IIS Webコア
通知不明な
ハンドラーまだ決定されていません
エラーコード 0x80070005
構成エラー権限が不十分なため構成ファイルを読み取れません
構成ファイル \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

このエラーの解決策を何度も検索しましたが、どの解決策もエラーを解決しませんでした。

IUSRアカウントに問題があります。のプロパティの「グループ名またはユーザー名」にこのアカウントが表示されませんweb.config

何が問題ですか?


3
Subversionを使用して一部の変更を元に戻した後、この問題が発生しました(偶然かもしれませんが)。Web.configファイルのACLがディレクトリ内の他のファイルと異なり、その親から継承していないことに気付きました。ACL継承を有効にすると、すべてが正常に戻りました。
ta.speot.is

1
私の解決策は少し異なりました。一部のWindows Server 2008マシンでは、サイトフォルダーのセキュリティ権限内で、「IUSR」ユーザーではなく「IIS_IUSRS」グループにアクセス権を付与する必要があります。必ずマシンの場所に移動してください。
MacGyver 2013年

7
IISのURL書き換えモジュールがインストールされていないサーバーにサイトを移動するときにこの問題が発生しました。
ScottE、2015年

1
これは、サーバーの名前を変更した場合に発生する可能性があります。私はこれを自分で行いました-そして最終的には(Windows Server 2012 R2)に移動してIIS APPPOOL \ SiteNameを再度追加する必要があり、100%修正されました。
マイケルKキャンベル、

2
あなたはASP.NETコアは、あなたの古い2008 R2サーバー上でアプリの展開に新しいしている場合、あなたはする必要があり、.NETのコアのWindows Serverをインストールホスティングバンドルを -私が学んだとして、この答えで
bkwdesign

回答:


178

このメッセージは、構成ファイルが何らかの理由で破損していることを示しています。ただし、実際には構成ファイルにアクセスできないとも記載されています。したがって、破損/有効性の欠如についての元のメッセージは無視します。これは、承認の欠如のためにファイルを読み取れないことの影響である可能性が高いためです。

構成ファイルを読み取れない理由は、Webアプリを実行しているプロセスがファイル/ディレクトリにアクセスする権限を持っていないためです。したがって、Webアプリを実行するプロセスにこれらの権限を与える必要があります。

アクセス権はかなり単純である必要があります。つまり、少なくともRead、そしてアプリによってはWriteかもしれません。

上記では、IUSRなどがのプロパティに含まれていないと説明しましたweb.configIUSRがファイルの[セキュリティ]タブに表示されていないことを意味している場合は、問題ありません。IUSRweb.configへのいかなる種類の許可も与えたくありません。IUSRの役割は匿名のインターネットユーザーです。

ファイルweb.configは、アプリケーションからのアクセスできる必要があります。

問題は、使用しているOSとIISのバージョンを指定していないため、実行する手順をアドバイスするのが難しいことです。

つまり、IIS 7.5では、ApplicationPoolIdentityにアクセス許可が割り当てられていないため、引用しているエラーメッセージが発生する可能性があります。ウェブアプリケーションはアプリケーションプールに属しているため、ウェブアプリケーションのアプリケーションプールを実行するOSアカウントに権限を付与する必要があります。多くの場合、これはNetworkServiceのようなものですが、目的に合わせたアカウントで実行するようにカスタマイズしている場合があります。より多くの情報なしではあなたを助けることは困難です。


3
この許可をプログラムで与えることはできますか?助けてください。私は同じ問題を抱えています。
pcbabu 2013年

1
おかげで私の問題も解決しました。偽装アカウントを使用して、アプリケーションのディレクトリに読み取りアクセス許可を割り当てる必要があるように見える偽装を使用しています。
Cesar 2013年

2
「コンテナ内のオブジェクトの列挙に失敗しました。アクセスが拒否されました」というメッセージが表示され続けます。私が許可した後
RollRoll 2015年

4
セキュリティ権限を付与する必要があるフォルダを右クリックします。これは、アプリケーションが公開されるルートフォルダーであり、IIS Webサイトの物理パスと同じフォルダーです。コンテキストメニューからプロパティを選択し、[セキュリティ]タブをクリックします。ユーザーを編集してから、ユーザーを追加します。[場所]ボタンをクリックし、上部のアイコン(マイコンピュータのように見えます)を選択します。テキスト領域にIIS_IUSRSと入力します。すべてのコンテキストメニューが閉じるまで、[OK]を繰り返し押します。Webサイトを再起動して、再度アクセスします。
ジェレミーレイブラウン

Webサイトの物理パスのアクセス許可を把握したくない場合は、すべての人にアクセス許可を与えてください。これは、すべての物理的なファイル/フォルダへのアクセスに対して迅速かつ推奨されないハックです。
ジェレミーレイブラウン

662

これは、サイトがIIS URL書き換えモジュールを使用するように構成されているが、インストールされていない場合にも発生する可能性があります。


これは私にとっては..書き換えセクションを削除しました(これはとにかく必要はありませんでした)。
アンドリューパターソン

129
よくやった。<rant> IISが不正なXMLについて不平を言うのではなく、「<rewrite>が何であるかを理解できません」エラーをスローするとよいでしょう。</ rant>
Evan Haas

7
ありがとうございました-それも私の問題でした。<rewrite>タグがある場合は、書き換えモジュールが使用されています。IISが解析できないものを教えてくれると思う人もいるでしょう。
scolestock 2013年

6
コマンドラインで不足している依存関係を解決するための素晴らしい簡単な方法。webpicmd / Install / Products:UrlRewrite2
cirrus

2
web.configに<rewrite>タグが含まれている場合は、rewriteモジュールが必要です。
Jono 2016

437

最後に、私は私の問題の解決策を得ました。IISでチェックボックスをオンにしなかったため、ASP.netアカウントはIISマネージャーに表示されませんでした。Windows 7でこれを行うには、次の手順に従います。

  1. コントロールパネルを開く
  2. 「プログラム」リンクをクリックします(プログラムをアンインストールしないでください)。
  3. 「Windowsの機能をオン/オフにする」リンクをクリックします
  4. ポップアップウィンドウで「インターネットインフォメーションサービスIIS」を見つけ、そのノードを展開します
  5. 「World Wide Web Service」ノードを展開します
  6. 「アプリケーション開発機能」ノードを展開します
  7. 「ASP.NET」のチェックボックスをチェック
  8. 次に[OK]ボタンをクリックします

これで、IISマネージャーにASP.netアカウントが表示され、デフォルトでIISアカウントが表示されます。次に、ASP.net Webサイトを「マイドキュメント」から、IISがアクセスできる別の場所(つまり、コンピューターの別のパーティション)に移動する必要があります。これで、IISマネージャーからWebサイトを参照すると、動作するはずです。

解決策を提供してくれたJeff Turnerに感謝します。


何ヶ月も実行されていたサーバーから、誰かがこの役割サービスを削除している必要があります。私はそれを再確認することを決して想像しなかったでしょう。ああ。
SixOThree 2013

さらに簡単に、コマンドラインを使用して:dism /NoRestart /Online /Enable-Feature /FeatureName:IIS-ASPNET
i3arnon

1
ありがとうございます。このような低レベルのエラーメッセージが表示された製品をどのようにリリースできますか?
Vland

私の<handlers>セクションにはWebDAVへの参照があり、WebDAV機能をIISに追加すると機能しました。
アンディロバーツ


47

私は同じ問題を抱えていました、これが私のために働いた解決策です。

  1. IISマネージャー
  2. そのウェブサイトを右クリック
  3. 権限を編集
  4. [セキュリティ]タブからユーザー「IIS_IUSRS」を追加しました
  5. ユーザー「IIS_IUSRS」に完全な権限を付与しました
  6. アプリケーションプールのIDを「ApplicationPoolIdentity」に設定します

2
制作目的にはお勧めしません。IIS_IUSRSは匿名アカウントであり、Webサイトのディレクトリ構造全体へのフルアクセスを許可していると思います
Jacques

許可も原因であることがわかったので、私の日も保存しました。別のアプリプールIDを使用したところ、うまくいきました。
近く

39

以下のためのVisual Studio(VS)開発者: としてはハーヴェイDarvey、サベージ、およびSnivesによって、あなたを示唆したアプリケーションホストの設定が間違っているアプリケーションの物理パスを指していてもよいです。/.vs/config/applicationhost.config内でvirtualDirectoryを検索し、physicalPathが正しくない場合は変更します。

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

physicalPathが正しいことを確認します。

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


3
プロジェクト=>プロパティ=>プロジェクトurl =>仮想ディレクトリを作成する場合も、これとまったく同じことを実行できます。プロンプトが表示されたら、[はい]を選択して正しい物理パスに再マップします
Adam Diament

私の場合は少し異なっていましたが、私の方向性を与えてくれました。ありがとうございました。それは私に大いに役立ちました:)
Bharat

24

Facepalmアラート:

設定ファイルへのパスが間違っている場合にも、このエラーが発生します。物理パスがIISに正しく入力されていることを確認するために、再度確認してください。


これの変形として、サイト自体へのパスを誤って設定したことがわかりました。ローカルシステムファイルパスではなく、マップされたネットワーク共有を誤って通過しました。
デビッド

2
同じ顔の手のひらの瞬間を持っていた。私は自分のWebサイトをサブフォルダーに移動し、IISへの新しいパスを正しく入力したと思いました。サイトのIISのツリーには、必要なフォルダなどがすべて表示されているように見えたため、これが原因ではありませんでした。権限などをリセットしましたが、解決しませんでした。次に、問題について話し合ったところ、私に提案された問題が解決されました...そして、1時間の無駄な時間の後に、再び作業サイトができました!
テントウムシ2016

このパスはどこに設定されていますか?これは私の問題のようですが、私が変更する必要があるものを見つけることができません
Drew Rochon

。.vs>設定>のapplicationHost.configこれは、あなたがGITファイルに無視して、開発者がそれをチェックを開始持っていないときに何が起こるかです:開発環境で
サベージ

物理パスに余分な "\"スラッシュがありました-shesh。これをありがとう
J King

18

ローカルマシン上のIIS_IUSRSにアクセス許可を割り当てる必要があります(ただし、IUSRに割り当てる必要はありません。実際には、アクセス許可を明示的に拒否しても機能します)。

権限を割り当てるには、フォルダを右クリックし、[セキュリティ]タブで正しい権限が付与されていることを確認します。ユーザーがリストにない場合は、[追加]をクリックしてIIS_IUSRSと入力します(ローカルの[ドメイン]でコンピュータを選択するか、名前フィールドに「YourLocalComputerName \ IIS_IUSRS」と入力します。これで問題ありません。

IIS_IUSRSグループにアクセス許可を割り当てる代わりに、必要に応じて、通常は "IIS APPPOOL \ app pool name "であるはずのアプリプールに割り当てることができます。


次のWebサイトから:iis.net/learn/get-started/planning-for-security/…IIS_IUSRS グループがIIS_WPGグループを置き換えます。この組み込みグループは、必要なすべてのファイルおよびシステムリソースにアクセスできるため、このグループにアカウントを追加すると、アプリケーションプールIDとしてシームレスに機能できます。
ジェレミーレイブラウン

引き続きアクセスが拒否されました。
GreySage 2018年

15

チップインするだけで同じ種類のエラーが発生し、問題は非常に単純でした。.NETCore Hosting Bundleがありませんでした。ツールをインストールしてサーバーを再起動したら、問題はありませんでした。

Windowsでasp.netコアをホストするためのマニュアルは、https//docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/? view = aspnetcore-2.2にあります。


.NET Core SDKをインストールするだけでは、IISでASP.NET Core Webサイトを実行するのに十分ではありません。私はこのエラーの処理に数時間を費やしました...
Ryan Rodemoyer

それは十分ではないかもしれませんが、このエラーを解決します。私のために働いた。すべての.NETコンポーネントが既に含まれていると想定していました。
pcalkins

ええ、ここに「ランタイム&ホスティングバンドル」をインストールする必要がありました: dotnet.microsoft.com/download/dotnet-core/2.2
Kirk Woll

わかりました、「自己完結型」のパッケージは、そのタイトルに応えるものではありません。
SLCH000

11

同じことが私にも起こりました。Webサイトを選択するときに、IIS 7の右ペインにある接続文字列をダブルクリックしてこれを確認してください。

URL書き換えルールを使用していて、それぞれのコンポーネントがインストールされていないため、エラー(Web構成ファイルに問題があること)が発生します。

「Microsoft URL Rewrite Module 2.0 for IIS 7」をインストールすると、問題が解決するはずです


9

ここでは何もうまくいきませんでしたが、このコマンドは別のSOの答えで見つかりましたが、問題は解決しました。管理者としてコマンドプロンプトを起動し、次のコマンドを実行するだけです。

run->cmd

run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"

クレジット:ユーザーVicxx


私と2017の開発環境を修正するには、Windows 7の機能からIISを削除する必要がありました。追加して、必要に応じてすべてのものを更新してインストールします。最後の手順は、Visual Studio 2017のコマンドプロンプトを使用して、レジを実行することでした。これですべてが再び機能し、8時間の時間をかけてこれを修正しました。uck ..
ウォーレンラフランス

7

Windows Server 2012、IIS 8.5でこの問題を解決するには、次の手順を実行します。他のバージョンでも動作するはずです。

  1. サーバーマネージャーに移動し、[役割と機能の追加]をクリックします。
  2. 役割セクションで次を選択します。 Web Server
  3. [セキュリティ]サブセクションですべてを選択します(ダイジェスト、IP制限、およびURL承認は使用していないため除外しました)。
  4. アプリケーション開発の下でを選択し.NET Extensibility 4.5ASP.NET 4.5両方のISAPIエントリ
  5. 機能セクションで選択します。NET 3.5.NET 4.5ASP.NET 4.5
  6. WebサーバーセクションでWeb ServerManagement Tools(すべて)、(IIS管理コンソールおよび管理サービス)、Windowsを選択します

6

この問題を解決したもう1つの可能性:

IIS-> [権限の編集]-> [セキュリティ]タブ->「ユーザー」に適切な権限を付与(または、設定に応じてIIS_IUSRS)



6

アプリケーションプールが正しいバージョンのフレームワークに設定されていることを確認してください。また、aspnet、IIS_IUSRS、またはIUSRユーザーがアプリケーションのディレクトリへの読み取りアクセス権を持っていることを確認する必要もあります。


これどうやってするの??「aspnetまたはIUSRユーザーがアプリケーションのディレクトリへの読み取りアクセス権を持っていることを確認してください」
Yasmeen

5
C:\ Users \ Yasso \ Documents \ Visual Studio 2008 \ WebSites \ WebSite5 \に移動し、WebSite5ディレクトリにIUSRおよびIIS_IUSRSグループの読み取り権限があることを確認します。これを行うには、ディレクトリを右クリックしてプロパティを選択し、[セキュリティ]タブに移動します。
ジェフターナー

しかし、グループ名またはユーザー名にIUSRおよびIIS_IUSRSグループが表示されません!! 何が問題なのかわからない??
ヤスミーン

1
ネットワークサービスのオプションが表示されますか?デフォルトでは、これは、デスクトップで作業しているときにアプリケーションプールが使用するものです(正しく思い出せば)
Jeff Turner

1
フォルダを右クリックしてプロパティを選択した後、[セキュリティ]タブに移動します。「追加」ボタンをクリックすると、「編集」ボタンのある別のウィンドウが表示されます。[編集]ボタンをクリックして、テキストボックスに「ネットワークサービス」と入力します。ユーザーが検索され、リストに追加されます。次に、ユーザーが少なくとも読み取り権限を持っていることを確認してください。
ジェフターナー


4

これは、web.configファイルとIIS Webサイトの両方で同じ名前のデフォルトドキュメント(index.aspxなど)が指定されている場合にも発生しました。最終的にIIS Webサイトからエントリを削除し、web.configエントリを次のように保持しました。

<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...

4

特定のフレームワークや動的圧縮などのIIS機能など、IIS環境のコンポーネントがweb.configへのアクセス許可ではなく、このメッセージで欠落している場合があります。

この場合は、Microsoftプラットフォームインストーラーをインストールして使用し、不足しているコンポーネントをインストールすることで解決できます。エラーログとメッセージにメッセージが表示されないため、不足しているものを突き刺さなければならない場合があります。


注意:動的圧縮は「Windows機能」リストにあり、MPIではありません
Simon_Weaver

@Simon_Weaver実際に動的圧縮、MPIがインストールするもののリストに含まれており、2012年以来、おそらくそれ以前でもそうです。乾杯。
eagle779 2014

4

このSOで説明されているように、IISの「アプリケーション開発」サブコンポーネントをインストールしてみてください

  • 検索ボックスの[スタート]ボタンをクリックし、「Windowsの機能を有効または無効にする」と入力します
  • 機能ウィンドウで、「インターネットインフォメーションサービス」をクリックします。
  • クリック:「World Wide Webサービス」
  • クリック:「アプリケーション開発機能」
  • 機能を確認(有効化)します。CGI以外はすべてチェックしました。

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


3

Webサイトフォルダーのアクセス許可を設定するか、wwwrootフォルダーにコピーする必要があります:)-アクセス許可を設定する場合は、2つの方法があります。権限(IUSR-デフォルトのiisユーザー)頑張ってください;-)


私の場合-iis 8、それは認証済みユーザーでした。
サイオン

3

私の場合、アプリケーションの物理パスがIISに存在しないフォルダを指していることが原因です。

アプリケーション設定のスクリーンショット


3

web.configファイルをprodからコピーし、http Sに書き換えるRewriteルールを除いて、prod以外のすべてを変更すると問題が発生しました。

それらのルールを削除し、正常に実行されました。


2

かなり簡単に言うと、IISはweb.configにアクセスできません。まず、ドキュメントフォルダーからサイトを削除します。次に、r / w権限があることを確認します。


サイトをドキュメントから別の場所に移動しましたが、同じエラーが表示されます
Yasmeen

2

私も同様の問題があり、web.configファイルのいくつかのセクションにコメントすることで修正しました。

このプロジェクトは以前に.Net 2.0でビルドおよびデプロイされました。.Net 3.5に移行した後、例外をスローし始めました。

決議:

構成ファイルに「< sectionGroup name = "system.web.extensions >」が含まれている場合は、コメント化して実行してください。このセクションは、Machine.configですでに利用可能になっているためです。


2

このエラーは、synaxエラーがあるか、web.configファイルに問題がある場合に発生します。

私にとっては、AppSettingsで使用していたURL内のアンパサンドでした。


エンコードされた接続文字列のパスワードを使用してこれを取得しました-&amp; この問題を乗り越えました。おかげで、これはアクセス許可とは関係のないここでの唯一の答えです。
ジェレミー・トンプソン、

2

IIS 7.5のエラーページで、ページの下部にある[詳細を表示]をクリックすると、次のMicrosoftリンクに移動します

。http : //support.microsoft.com/kb/942055

0x80070005エラーコードはアクセス許可に関連しているようで、解決策2の手順に従って、方法2で適切なアカウントに適切なフォルダーへのアクセス許可を割り当てると、問題が解決するはずです。


2

マップされたドライブでこの問題が発生しました。IISはマップされたドライブでは機能しません。マッピングされていないドライブを使用してください。


2

あなたのウェブサイトが保存されているフォルダーを探索し、あなたが1つの余分なフォルダー「aspnet_client」を取得し、そのフォルダーを削除することを確認してください、それはあなたのために機能します。

私がこれを試したところ、私の問題は解決しました。

それがあなたのために働く場合は、他の体も解決策を得るように答えとしてそれを作ってください。


1

これは私にはうまくいきませんでしたが、私は最終的に私のために働いた解決策を持っています:

web.configでこの行を削除します。

<compilation debug="true" targetFramework="4.5"/>

この行を削除しないでください

<compilation debug="true"/>

1

ローカルアカウントIIS_IUSRSをセキュリティに追加し、読み取り/実行アクセス権を付与します。それは私のケースで動作します。

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