web-dev-qa-db-ja.com

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

自分のasp.net WebサイトをIISからIIS managerまでアップロードしたいです。しかし、これを実行すると、次のエラーが発生します。

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

Module  IIS Web Core
Notification    Unknown
Handler Not yet determined
Error Code  0x80070005
Config Error    Cannot read configuration file due to insufficient permissions
Config File \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

私は何度もこのエラーの解決策を探しましたが、解決策のどれもエラーを解決しませんでした。

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

何が問題ですか?

436
Yasmeen

メッセージはあなたの設定ファイルが何らかの形で破損していることを言っています。しかし、実際には設定ファイルにアクセスできないとも書かれています。そのため、破損や有効性の欠如に関する元のメッセージは無視します。これは、おそらく権限の欠如のためにファイルを読み取れないことによる単なる影響だからです。

設定ファイルを読み込めない理由は、Webアプリケーションを実行しているプロセスがファイル/ディレクトリにアクセスする権限を持っていないためです。そのため、Webアプリケーションを実行しているプロセスにこれらの権限を付与する必要があります。

アクセス権はかなり単純であるべきです、すなわち少なくとも Read 、そしてあなたのアプリ次第で、多分 Write

上記では、 _ iusr _ などがweb.configのプロパティに含まれていないことに言及しました。それによってあなたが _ iusr _ がファイルのセキュリティタブにリストされていないことを意味するならば、それは良いことです。 _ iusr _ に、 web.config へのいかなる許可も与えたくありません。ロール _ iusr _ は匿名のインターネットユーザーです。

ファイル web.config onlyからあなたのアプリケーションを通してアクセス可能であるべきです。

問題は、どのOSとIISバージョンを使用しているのかわからないため、どの手順を実行するかをアドバイスするのは困難です。

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

157
intermension

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

586
bkaid

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

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

これで、IISマネージャにASP.netアカウントが表示され、デフォルトではIISアカウントが表示されます。さて、あなたはあなたのASP.netウェブサイトを「私の文書」からIISがそれにアクセスする許可を持っている別の場所(すなわちあなたのコンピュータ上の別のパーティション)に移動するべきです。さて、IISマネージャからあなたのウェブサイトを閲覧すればそれはうまくいくはずです。

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

407
Yasmeen

私の場合はIIS URL Rewriteモジュールをインストールすることで問題は解決しました。

50
Salim

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

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

Visual Studio(VS)開発者の場合: Harvey Darvey、Savage、およびSnivesが示唆しているように、Application Host Configurationは間違ったアプリケーション物理パスを指している可能性があります。 virtualDirectory 内の /.vs/config/applicationhost.config を検索して、 physicalPath が正しくない場合は変更します。

enter image description here

physicalPath が正しいことを確認してください。

enter image description here

36
Michael

Facepalmアラート:

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

23
Jon Crowell

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

権限を割り当てるには、フォルダとセキュリティタブを右クリックし、正しい権限が付与されていることを確認し、ユーザーが表示されていない場合は[追加]をクリックしてIIS_IUSRSと入力します。コンピュータが選択されている、または名前フィールドYourLocalComputerName\IIS_IUSRS)を入力してください、そしてあなたは行ってもいいです。

必要に応じて、IIS_IUSRSグループにアクセス許可を割り当てる代わりに、一般に "IIS APPPOOL\アプリケーションプール名"にする必要があるアプリケーションプールに割り当てることができます。

18
yoel halb

同じことが私と一緒に起こりました、あなたがウェブサイトを選択するとき、IIS 7の右側のペインの接続文字列をダブルクリックしてこれをチェックしてみてください。

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

「Microsoft URL書き換えモジュール2.0 for IIS 7」をインストールすると問題が解決します。

9
Tanuj Gulati

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

run->cmd

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

クレジット:ユーザVicxx

8
Celt

あー。自分のサイト/ファイルを別のフォルダに移動しました。 IIS Webサイトのパスを変更せずに。

あなたは皆笑うかもしれません。

私のためにこの問題を解決したもう一つの可能​​性:

[IIS] - > [権限の編集] - > [セキュリティ]タブ - > [ユーザー]に適切な権限(またはセットアップによってはIIS_IUSRS)を付与します。

6
valen

私は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 Server(all)、Management Tools(IIS管理コンソールおよび管理サービス)、Windowsを選択します。
5

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

5
Jeff Turner

Web.configファイルとIIS Webサイトの両方に同じ名前のデフォルトドキュメント(index.aspxなど)が指定されていたときも、これが起こりました。私はIIS Webサイトからエントリを削除し、web.configエントリを次のように残しました。

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

このメッセージには、IIS環境内のコンポーネントが見つからないことがあります。 web.configに対するパーミッションではなく、特定のフレームワーク、または動的圧縮のようなIIS機能。

この場合、解決策は、Microsoft Platform Installerをインストールして使用し、不足しているコンポーネントをインストールすることです - エラーログとメッセージには表示されないため、欠落しているコンポーネントを突き止める必要があります。

4
eagle779

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

application setting screenshot

3
chengbo

私はprodから自分のweb.configファイルをコピーし、http _ s _ に書き換えていたRewriteルールを除いてprod関連ではないすべてを変更したので、私は問題を抱えていました。

それらの規則を取り除き、そしてうまく走った。

3
DanO

あなたのウェブサイトフォルダの許可を設定するか、それらをwwwrootフォルダにコピーする必要があります:) - 許可を設定する場合、2つの方法があります:+IIS =>であなたのウェブサイトフォルダを右クリック+ [許可の編集]を選択し、許可を追加します(IUSR - デフォルトのIISユーザー)。幸運を祈ります;-)

3
SownRocker

チップインするために、私は同じ種類のエラーを受け取りました、そして、私の問題は非常に簡単でした:私は.NET Core Hosting Bundleを見逃していました。ツールをインストールしてサーバーを再起動したら、それは大丈夫でした。

あなたはここにwindowsでHost asp.netコアのマニュアルを見つけることができます: https://docs.Microsoft.com/ja-jp/aspnet/core/Host-and-deploy/iis/?view=aspnetcore-2.2

2
JS_Diver

マップドライブでこの問題が発生したため、IISはマップドライブでは機能しません。マップされていないドライブを使うだけです。

2
Rob Sedgwick

私も同様の問題を抱えていたし、私はweb.configファイルのいくつかのセクションをコメントすることでそれを修正しました。

プロジェクトは.Net 2.0で以前に構築され、デプロイされました。 .Net 3.5に移行した後、例外を投げ始めました。

解決策:

設定ファイルに "< sectionGroup name =" system.web.extensions > "が含まれている場合は、コメントを付けて、このセクションは既にMachine.configの下にあるため、実行してください。

2
Munna Singh

あなたのウェブサイトが保存されているフォルダを調べてください、そして、あなたはそのフォルダを削除する1つの追加のフォルダ「aspnet_client」を得るでしょう、そしてそれはあなたのために働くでしょう。

私はこれを試しました私の問題は解決しました。

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

2
Rahul Sonone

Web.configファイルに構文エラーまたは問題がある場合は、このエラーが発生する可能性があります。

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

2
Tim P.

かなり簡単です、IISはあなたのweb.configにアクセスできません。私はあなたのドキュメントフォルダからサイトを取り出すことから始めたいと思います。それが同様にr/w許可を持っていることを確認してください。

2
OnResolve

私の場合は、anonymousAuthenticationプロパティをコメント化(または削除)するだけで動作します。

 <security>
     <authentication>
         <!--<anonymousAuthentication enabled="true" />-->
     </authentication>
 </security>
1
Omar Vargas

私の場合、configSectionsは設定の先頭になければなりません

<configuration>
<configSections>
...
</configSections>
<othersetting>
</othersetting>
.....
1
Grey Wolf

次のパスのweb.configの値をsystem.webServer\security\authenticationに指定した後に、この奇妙なエラーが発生しました

IISは恐ろしい製品であり、他の方法では設定が難しいため、IISの設定方法をweb.configで制御することをお勧めします。

問題は、IISが設定の一部を外部の仲介者にロックすることによってその権限をスタンプすることでした。

認証設定は、IISサーバーレベルのFeature Delegationアプレットを使用して読み取り/書き込みを設定することでロック解除できます。

もちろん、IIS authタイプの設定を自動化する必要がある前に、今度はロック解除を自動化する必要があります。 IISは恐ろしい商品です。

1
Luke Puplett

これのどれも私のために働きませんでした、しかし私はついに私のために働いた解決策を持っています:

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

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

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

<compilation debug="true"/>
1
Luca Steeb

私にとって、私はソース管理から最新のものを入手していました、そして、これは起こりました。

Applicationhost.configファイルのvirtualDirectoryパスが私のマシンのものと異なっていました。

私は自分のコピーを復元しました、そしてそれは働きます。私はIIS expressを使用しています。

enter image description here

1
Harvey Darvey

IIS 7.5エラーページで、ページ下部にある[詳細を見る]をクリックします。この場合は、次のマイクロソフトリンクに移動します。

http://support.Microsoft.com/kb/942055

0x80070005エラーコードはパーミッションに関連するものと思われます。解決方法2の方法2の手順に従って適切なフォルダに適切なアカウントを割り当てると解決するはずです。 、まっすぐ働いた。

1
kbbucks

私は自分のWebアプリケーションのobjフォルダを削除することでこの問題を解決しました。解決策を再構築した後、問題は解決しました。

1
Farshid

ローカルアカウントIIS_IUSRSをセキュリティに追加し、それらに読み取り/実行アクセス権を付与します。それは私の場合はうまくいきます。

1
user3534355

サーバーがクラッシュした後、サイトに "HTTP 500.19 0x80070005エラー - 設定ファイルweb.configを読み取れません"というエラーが表示されました。通常それはパーミッションか匿名ユーザーの設定でしょうが、それらはうまく設定され変更されていませんでした。 IISメタベース(またはIIS 7以降は%windir%\ system32\inetsrv\config\applicationHost.config)で何かが破損した疑いがあります。 IISを作成し直します。

0
Snives

IISの 'Application Development'サブコンポーネントをインストールしてみてください

0
IsaacBok

私の場合は、Visual Studioを管理者モードで実行するだけでした。

0
Daniel

ASP.NET Coreモジュールをインストールする

次のリンクを使用してインストーラをダウンロードしてください。 https://www.Microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer

0
MrNams

私はweb.configファイルを、相対パスより実際のパスを提供するように変更しました。

<httpPlatform processPath="F:\Projects\.....
instead of 
<httpPlatform processPath="..\approot\web.cmd"
0
ANIL MANE

名前空間を[WebService(Namespace = " http://tempuri.org/ ")]からに変更するだけです。

http://Microsoft.com/webservices/ /

私はこの解決策で私の問題を解決しました

0
ComEngineer

エラー/ HResultコードを確認して、このガイドに従ってください。

0x80070005

この問題は、以下のいずれかの理由で発生します。

  • Windows Vistaを実行しているコンピューターでIIS 7.0を使用しています。また、UNCパススルー認証を使用してリモートの汎用名前付け規則(UNC)共有にアクセスするようにWebサイトを構成します。

IIS_IUSRSグループには、ApplicationHost.configファイル、Web.configファイル、またはIISの仮想ディレクトリまたはアプリケーションディレクトリに対する適切なアクセス許可がありません。

溶液

方法1

リモートのUNC共有にアクセスするためにUNCパススルー認証を使用するようにWebサイトを構成しないでください。代わりに、リモートのUNC共有にアクセスするための適切なアクセス許可を持つユーザーアカウントを指定してください。

方法2(ほとんどの場合)

IIS_IUSRSファイルまたはApplicationHost.configファイルの Web.config グループに読み取り権限を付与します。

だから簡単な言葉で、あなたはする必要があります:

  1. 開く フォルダのプロパティ 報告された設定ファイルWeb.configなど)を含みます。
  2. セキュリティタブ編集...および追加...IIS_IUSRS グループ化して確認。
0
kenorb

Visual Studio 2017を使用してローカルコンピューターからプロジェクトを実行すると、このエラーが発生しました

これらの解決策のどれも私にとってはうまくいきませんでした。一日の終わりに、私のために働いた修正は以下の通りでした:

  1. プロジェクトを右クリック - > [プロパティ] - > [Web] - > [プロジェクトURL]
  2. プロジェクトのUrlテキストボックスで、ポート番号を1つ増やしてからCreate Virtual Directoryボタンをクリックしました。
  3. 変更を保存してから、プロジェクトをもう一度実行してください。
0
MartinS

私の場合は、.NET Framework 2.0のアプリケーションプールを選択し、32ビットアプリケーションを有効にしました。私は.NET Framework 2.0アプリケーションを持っていました。

SQL Serverのレプリケーションプロジェクトで「フォーマットが正しくないプログラムをロードしようとしました」というエラーが表示される

0
Neshta
0
Alireza

プロジェクトを含むフォルダをWindowsエクスプローラで開きます。フォルダを右クリックして、USERユーザーの権限を追加します。

0