自分の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
のプロパティの「グループ名またはユーザー名」にこのアカウントは表示されません。
何が問題ですか?
メッセージはあなたの設定ファイルが何らかの形で破損していることを言っています。しかし、実際には設定ファイルにアクセスできないとも書かれています。そのため、破損や有効性の欠如に関する元のメッセージは無視します。これは、おそらく権限の欠如のためにファイルを読み取れないことによる単なる影響だからです。
設定ファイルを読み込めない理由は、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 のようなものですが、専用のアカウントで実行するようにカスタマイズした可能性があります。より多くの情報がなければそれはあなたを助けることは困難です。
これは、サイトが IIS URL書き換えモジュール を使用するように設定されているが、インストールされていない場合にも発生する可能性があります。
最後に 、私は自分の問題に対する解決策を得た。 IISのチェックボックスをオンにしなかったため、ASP.netアカウントはIISマネージャに表示されませんでした。 Windows 7でこれを行うには、次の手順に従います。
これで、IISマネージャにASP.netアカウントが表示され、デフォルトではIISアカウントが表示されます。さて、あなたはあなたのASP.netウェブサイトを「私の文書」からIISがそれにアクセスする許可を持っている別の場所(すなわちあなたのコンピュータ上の別のパーティション)に移動するべきです。さて、IISマネージャからあなたのウェブサイトを閲覧すればそれはうまくいくはずです。
解決策をくれたJeff Turnerに感謝します。
私の場合はIIS URL Rewriteモジュールをインストールすることで問題は解決しました。
私は同じ問題を抱えていました、これは私のために働いた解決策です。
Facepalmアラート:
設定ファイルへのパスが間違っている場合も、このエラーが発生します。もう一度確認して、IISに物理パスが正しく入力されていることを確認してください。
ローカルコンピュータでIIS_IUSRSにアクセス許可を割り当てる必要があります(ただし、IUSRに割り当てる必要はありません。実際には、アクセス許可を明示的に拒否しても機能します)。
権限を割り当てるには、フォルダとセキュリティタブを右クリックし、正しい権限が付与されていることを確認し、ユーザーが表示されていない場合は[追加]をクリックしてIIS_IUSRSと入力します。コンピュータが選択されている、または名前フィールドYourLocalComputerName\IIS_IUSRS)を入力してください、そしてあなたは行ってもいいです。
必要に応じて、IIS_IUSRSグループにアクセス許可を割り当てる代わりに、一般に "IIS APPPOOL\アプリケーションプール名"にする必要があるアプリケーションプールに割り当てることができます。
同じことが私と一緒に起こりました、あなたがウェブサイトを選択するとき、IIS 7の右側のペインの接続文字列をダブルクリックしてこれをチェックしてみてください。
URL書き換えルールを使用しており、それぞれのコンポーネントがインストールされていないため、エラーが発生します(Web設定ファイルに問題があることを意味します)。
「Microsoft URL書き換えモジュール2.0 for IIS 7」をインストールすると問題が解決します。
ここでは何もうまくいきませんでした、私はこのコマンドを別のSO答えで見つけました、そしてそれは私の問題を解決しました。管理者としてコマンドプロンプトを起動し、次のコマンドを実行するだけです。
run->cmd
run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"
クレジット:ユーザVicxx
あー。自分のサイト/ファイルを別のフォルダに移動しました。 IIS Webサイトのパスを変更せずに。
あなたは皆笑うかもしれません。
私のためにこの問題を解決したもう一つの可能性:
[IIS] - > [権限の編集] - > [セキュリティ]タブ - > [ユーザー]に適切な権限(またはセットアップによってはIIS_IUSRS)を付与します。
私はWindows Server 2012でこの問題を解決するためにこれらのステップを行います、IIS 8.5。他のバージョンでも動作するはずです。
Web Server
を選択します。.NET Extensibility 4.5
、ASP.NET 4.5
、および両方のISAPI
エントリを選択します。NET 3.5
、.NET 4.5
、ASP.NET 4.5
を選択します。Web Server
(all)、Management Tools
(IIS管理コンソールおよび管理サービス)、Windowsを選択します。アプリケーションプールが正しいバージョンのフレームワークに設定されていることを確認してください。また、aspnet、IIS_IUSRS、またはIUSRの各ユーザーがアプリケーションのディレクトリへの読み取りアクセス権を持っていることを確認する必要があります。
Web.configファイルとIIS Webサイトの両方に同じ名前のデフォルトドキュメント(index.aspxなど)が指定されていたときも、これが起こりました。私はIIS Webサイトからエントリを削除し、web.configエントリを次のように残しました。
<system.webServer>
<defaultDocument>
<files>
<add value="index.aspx" />
</files>
</defaultDocument>...
このメッセージには、IIS環境内のコンポーネントが見つからないことがあります。 web.configに対するパーミッションではなく、特定のフレームワーク、または動的圧縮のようなIIS機能。
この場合、解決策は、Microsoft Platform Installerをインストールして使用し、不足しているコンポーネントをインストールすることです - エラーログとメッセージには表示されないため、欠落しているコンポーネントを突き止める必要があります。
私の場合は、アプリケーションの物理パスがIISの存在しないフォルダを指しているためです。
私はprodから自分のweb.configファイルをコピーし、http _ s _ に書き換えていたRewriteルールを除いてprod関連ではないすべてを変更したので、私は問題を抱えていました。
それらの規則を取り除き、そしてうまく走った。
あなたのウェブサイトフォルダの許可を設定するか、それらをwwwrootフォルダにコピーする必要があります:) - 許可を設定する場合、2つの方法があります:+IIS =>であなたのウェブサイトフォルダを右クリック+ [許可の編集]を選択し、許可を追加します(IUSR - デフォルトのIISユーザー)。幸運を祈ります;-)
チップインするために、私は同じ種類のエラーを受け取りました、そして、私の問題は非常に簡単でした:私は.NET Core Hosting Bundleを見逃していました。ツールをインストールしてサーバーを再起動したら、それは大丈夫でした。
あなたはここにwindowsでHost asp.netコアのマニュアルを見つけることができます: https://docs.Microsoft.com/ja-jp/aspnet/core/Host-and-deploy/iis/?view=aspnetcore-2.2
マップドライブでこの問題が発生したため、IISはマップドライブでは機能しません。マップされていないドライブを使うだけです。
私も同様の問題を抱えていたし、私はweb.configファイルのいくつかのセクションをコメントすることでそれを修正しました。
プロジェクトは.Net 2.0で以前に構築され、デプロイされました。 .Net 3.5に移行した後、例外を投げ始めました。
設定ファイルに "< sectionGroup name =" system.web.extensions > "が含まれている場合は、コメントを付けて、このセクションは既にMachine.configの下にあるため、実行してください。
あなたのウェブサイトが保存されているフォルダを調べてください、そして、あなたはそのフォルダを削除する1つの追加のフォルダ「aspnet_client」を得るでしょう、そしてそれはあなたのために働くでしょう。
私はこれを試しました私の問題は解決しました。
それがあなたのために働くならば、他の体も解決策を得るように答えとしてそれを作ってください。
Web.configファイルに構文エラーまたは問題がある場合は、このエラーが発生する可能性があります。
私にとっては、AppSettingsで使用していたのは、迷い URL内のアンパサンド でした。
かなり簡単です、IISはあなたのweb.configにアクセスできません。私はあなたのドキュメントフォルダからサイトを取り出すことから始めたいと思います。それが同様にr/w許可を持っていることを確認してください。
私の場合は、anonymousAuthenticationプロパティをコメント化(または削除)するだけで動作します。
<security>
<authentication>
<!--<anonymousAuthentication enabled="true" />-->
</authentication>
</security>
私の場合、configSectionsは設定の先頭になければなりません
<configuration>
<configSections>
...
</configSections>
<othersetting>
</othersetting>
.....
次のパスのweb.config
の値をsystem.webServer\security\authentication
に指定した後に、この奇妙なエラーが発生しました
IISは恐ろしい製品であり、他の方法では設定が難しいため、IISの設定方法をweb.config
で制御することをお勧めします。
問題は、IISが設定の一部を外部の仲介者にロックすることによってその権限をスタンプすることでした。
認証設定は、IISサーバーレベルのFeature Delegationアプレットを使用して読み取り/書き込みを設定することでロック解除できます。
もちろん、IIS authタイプの設定を自動化する必要がある前に、今度はロック解除を自動化する必要があります。 IISは恐ろしい商品です。
これのどれも私のために働きませんでした、しかし私はついに私のために働いた解決策を持っています:
web.configでこの行を削除します。
<compilation debug="true" targetFramework="4.5"/>
この行を削除しないでください
<compilation debug="true"/>
IIS 7.5エラーページで、ページ下部にある[詳細を見る]をクリックします。この場合は、次のマイクロソフトリンクに移動します。
http://support.Microsoft.com/kb/942055
0x80070005エラーコードはパーミッションに関連するものと思われます。解決方法2の方法2の手順に従って適切なフォルダに適切なアカウントを割り当てると解決するはずです。 、まっすぐ働いた。
私は自分のWebアプリケーションのobj
フォルダを削除することでこの問題を解決しました。解決策を再構築した後、問題は解決しました。
ローカルアカウントIIS_IUSRSをセキュリティに追加し、それらに読み取り/実行アクセス権を付与します。それは私の場合はうまくいきます。
サーバーがクラッシュした後、サイトに "HTTP 500.19 0x80070005エラー - 設定ファイルweb.configを読み取れません"というエラーが表示されました。通常それはパーミッションか匿名ユーザーの設定でしょうが、それらはうまく設定され変更されていませんでした。 IISメタベース(またはIIS 7以降は%windir%\ system32\inetsrv\config\applicationHost.config)で何かが破損した疑いがあります。 IISを作成し直します。
IISの 'Application Development'サブコンポーネントをインストールしてみてください
私の場合は、Visual Studioを管理者モードで実行するだけでした。
ASP.NET Coreモジュールをインストールする
次のリンクを使用してインストーラをダウンロードしてください。 https://www.Microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
私はweb.configファイルを、相対パスより実際のパスを提供するように変更しました。
<httpPlatform processPath="F:\Projects\.....
instead of
<httpPlatform processPath="..\approot\web.cmd"
名前空間を[WebService(Namespace = " http://tempuri.org/ ")]からに変更するだけです。
http://Microsoft.com/webservices/ /
私はこの解決策で私の問題を解決しました
エラー/ HResultコードを確認して、このガイドに従ってください。
この問題は、以下のいずれかの理由で発生します。
- Windows Vistaを実行しているコンピューターでIIS 7.0を使用しています。また、UNCパススルー認証を使用してリモートの汎用名前付け規則(UNC)共有にアクセスするようにWebサイトを構成します。
IIS_IUSRSグループには、ApplicationHost.configファイル、Web.configファイル、またはIISの仮想ディレクトリまたはアプリケーションディレクトリに対する適切なアクセス許可がありません。
リモートのUNC共有にアクセスするためにUNCパススルー認証を使用するようにWebサイトを構成しないでください。代わりに、リモートのUNC共有にアクセスするための適切なアクセス許可を持つユーザーアカウントを指定してください。
IIS_IUSRS
ファイルまたはApplicationHost.config
ファイルのWeb.config
グループに読み取り権限を付与します。
だから簡単な言葉で、あなたはする必要があります:
Web.config
など)を含みます。IIS_IUSRS
グループ化して確認。Visual Studio 2017を使用してローカルコンピューターからプロジェクトを実行すると、このエラーが発生しました
これらの解決策のどれも私にとってはうまくいきませんでした。一日の終わりに、私のために働いた修正は以下の通りでした:
私の場合は、.NET Framework 2.0のアプリケーションプールを選択し、32ビットアプリケーションを有効にしました。私は.NET Framework 2.0アプリケーションを持っていました。
SQL Serverのレプリケーションプロジェクトで「フォーマットが正しくないプログラムをロードしようとしました」というエラーが表示される
プロジェクトを含むフォルダをWindowsエクスプローラで開きます。フォルダを右クリックして、USERユーザーの権限を追加します。