私は最近、IISでasp.netサイトをホストしようとしているときにエラーが発生しました。私は多くの人が誓う解決策を見つけました。
溶液:
- フォルダ内のファイルに対する読み取り権限を持つIIS_IUSRSを追加します。
- IIS認証方法をBasicAuthenticationに変更します。
- webサイトを更新します。それが動作します
( http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html )
Web.configファイルに何を追加しますか?私は以前にそれを編集する必要はありませんでした。現在の内容は次のとおりです。
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.Microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
</system.web>
</configuration>
私のエラーです:
設定エラー:権限が不十分なため、設定ファイルを読み込めません
設定ファイル:\?\ C:\ Users *****\Documents\Visual Studio 2010\WebSites\PointsForTime\web.config
あなたのweb.configでは問題ありませんがあります。あなたのウェブサイトはプロセスの下で運営されています。 IISでは、そのプロセスのIDを定義できます。 identity、つまりあなたのWebサイトのアプリケーションプールは(ネットワークサービス、ローカルシステムなど)...のように実行され、Webにアクセスして読む権限が必要です。設定ファイル.
更新:
この更新された答えは上記と同じですが、もう少し長く簡単で改善されたものです。
まず第一に:あなたはあなたの設定ファイルの中で何かを変更する必要はありません。 大丈夫です。問題はwindows file permissionsにあります。
この問題はアプリケーションがアクセスおよびweb.configファイルを作成できないために発生します。
ファイルをIIS_IUSRS groupにアクセス可能にします。 web.configをクリックしてプロパティをクリックし、セキュリティタブの下にIIS_IUSRSを追加します。
それでは、このIIS_IUSRSとは何ですか?
あなたのウェブサイトはexeのようなファイルです。他のexeファイルと同じように、それはユーザーによって開始されたであるべきで、それはそのユーザーに割り当てられたパーミッションによるを実行します。
あなたのサイトがIISで開始されると、あなたのWebサイトのアプリケーションプールはユーザー_(ネットワークサービス、ローカルシステム、など...(およびIISで変更できます)
ですから、あなたがIIS_IUSRSと言うとき、それはあなたのサイトが実行されていることを意味する任意のユーザー_(ネットワークサービス、ローカルシステムなど)...を意味します。
そして@Sephが下記のコメントで言及されているように、_:あなたのコンピュータがドメインにある場合、IIS_IUSRSグループはlocal group。また、このユーザーを見つけようとしているときに場所を確認するには、企業ドメインではなくローカルコンピュータに設定する必要があります。
編集者注:この答えが言うことをするのは _危険な_ です! LocalSystemアカウントは...
完全に信頼されたアカウント、管理者アカウントよりももっと。このアカウントでは実行できない単一のボックスには何も存在せず、マシンとしてネットワークにアクセスする権利があります(これにはActive Directoryが必要で、マシンアカウントに何らかの権限を付与する必要があります)
ApplicationPoolIdentity から LocalSystem にIDを変更すると、作業が完了しました。
Win7 64をIIS 7.5とともに使用しています
私はweb.config
ファイルの同じ権限問題と思われるものを持っていました。
しかし、私の問題はIISが設定ファイルのロードに失敗したことが原因で発生しました。これにはURL書き換えルールが含まれており、新しいサーバーにIIS URL書き換えモジュールがインストールされていません。
解決策: 書き換えモジュールをインストールする。
誰かが数時間節約できることを願っています。
サイトのルートフォルダを他のユーザーと共有しようとしたときに同じ問題が発生しました。いくつかのフォルダが権限を失いました。だから私はAfshin Ghが提案したように IIS_IUSRS グループにパーミッションを追加するためのステップに従った。問題はこのグループが私には利用できなかったことです。私は窓7を使っています。
私がしたこと私はちょうどいくつかのステップを変更しました:
それは私のために働いた。
あなたはあなたのweb.configで何も変更する必要はありません。
問題はファイルシステムのパーミッションです。ファイルのアクセス許可により、IIS_IUSRSユーザーがweb.config(またはおそらく他のファイル)にアクセスすることは許可されていません。 IIS_IUSRSアカウントからアクセスできるように、ウィンドウ内のファイルのアクセス権を変更してください。
ファイルをIIS_IUSRSグループにアクセス可能にします。 web.configを右クリックしてプロパティを展開し、セキュリティタブの下にIIS_IUSRSを追加します。グループに読み取り/書き込みアクセス権を与えます。
グループがNOT使用可能な場合は、IIS_IUSRSをComputerName\IIS_IUSRSに置き換えます。
親フォルダに移動して右クリックし、 プロパティ を選択します。 セキュリティ タブを選択し、権限を編集して 追加 をクリックします。 詳細 および 今すぐ検索 をクリックします。 IIS_IUSRS を選択し、再度 _ ok _ および _ ok _ をクリックします。必ず Write をチェックしてください。 _ ok _ および _ ok _ をもう一度クリックします。
仕事は終わった!
IIS_IUSRS にアクセス許可を付与するときは、Webアプリケーションの IIS/Authentication セクションで、匿名認証資格情報がIUSRではなくアプリケーションプールIDを使用していることを確認してください。
何らかの理由でweb.configが読み取り専用に設定されています。 web.configファイルのreadonlyオプションのチェックを外します。
私は(他の人が示唆しているように、ISS-IUSRSに加えて)IUSRにパーミッションを追加する必要がありました。 (また参照してください: http://codeasp.net/blogs/raghav_khunger/Microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unauthorized )
チームの他の開発者と同じ設定を保つためにsubstを使用してD:からC:へのマッピングを作成しました。これも私に説明と同じエラーを与えた。これを削除して私のためにそれを修正しました。
Web.configファイルが読み取り専用になっていないことを確認してください。
プロセスモデルのIDをLocalSystemに変更したことで、この問題は解決しました。アプリケーションプールを右クリックして[詳細設定]を選択すると、この設定を見つけることができます。私はIIS 7.5を実行しています。
プロジェクトをC以外のドライブに移動します。同じエラーで私のために働きました。
アプリケーションが仮想ディレクトリにありそしてファイルへのパスがマップされたドライブである場合、これが発生する可能性があります。
ファイルへのパスをローカルドライブに変更しても、それが問題ないのであれば、これで解決します。
アプリケーションプールユーザーのフォルダに読み取り権限を追加することでこれを解決しました(WIN SERVER 2008 R2):C:\ Windows\System32\inetsrv\config
ちょっとした背景:私たちのサーバーは、アプリユーザーがもっと多くの権限を持っているという古典的なエラーを使ってハッキングされています(ローカル管理者).
これを修正するために、必要最小限の権限で、アプリケーションフォルダに対する権限のみを持つ新しいドメインユーザーを作成し、それをアプリケーションプールユーザーとして割り当てました。私たちがこの問題にぶつかるよりも、これが私たちの問題の解決策でした。
与えられた答えはすべて有効であり、さまざまな状況下で機能します。
私にとっては、Visual Studioの再起動はうまくいきました。
そのユーザーにweb.configを含むフォルダーへの読み取りアクセス権を付与した後にのみ、そのアプリケーションプールで特定のIDでWebサイトを実行していました。 readを使用して「Everyone」ユーザーを追加した後、これを追跡しましたが、すべてうまくいきました。
私にとっては、このエラーは私のローカルマシンでのデバッグ中に発生し、ウェブサイトをコンパイルするときに.NET Frameworkによって開始されるベースweb.configに関連していることが判明しました。私のC:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.configファイルに認識されない要素(folderLevelBuildProviders)がありました。これを修正すると500.19エラーが修正されました。
これを参照してください。 IIS Managerは、.NET 4アプリケーションで.NETコンパイルを構成できません
IISアプリケーションに仮想ディレクトリと物理パスがあり、スラッシュが含まれている場合、これが起こりました。 / 円記号の代わりに \。これは誤ってIISのPowerShell管理APIを使用して継続的な配信プロセス中に行われました。
applicationHost.config
<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
<virtualDirectory path="/" physicalPath="C:\inetpub\MySite/MyService" />
</application>
physicalPath
属性にスラッシュが含まれていないことを確認してください。 /バックスラッシュのみ \
applicationHost.config
<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
<virtualDirectory path="/" physicalPath="C:\inetpub\MySite\MyService" />
</application>
Webを右クリック=>タブセキュリティ=>ボタン編集=>ボタン追加=>ボタン詳細=>ボタン今すぐ検索=>検索結果であなたのグループを選択してください(この場合は "IIS_IUSRS")=> Ok =>わかりました=>わかりました
そして編集許可をクリックしてください。
セキュリティに行きます。
編集ボタンをクリックしてください。
追加ボタンをクリックします。 COMPUTER_NAME\IIS_USERSと入力します。
または
進むをクリックします。
今すぐ検索ボタンをクリックします。
そして選択するオプションがあります。 IIS_USERSを選択して[OK]をクリックし、[OK]をクリックします。
新しいサーバーの場合は、web.configファイルを読み込めるようにASP.NET機能をIISに構成またはインストールする必要がある場合があります。
私の場合、これが理由でした。
許可を与えてICACLS.exeを使用しましたが、動作しませんでした。それから私は物理的なパスを変えて、それはうまくいった。
(IIS 8.5 windows 2012 R2)
私は以前の提案のほとんどを試したが無駄だった。ウェブサイトをリロードできないので、.csprojファイルを編集してポート番号を変更したところ、すぐに動作しました。
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>**4000**</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:**4000**/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
また、「権限が不十分なため、構成ファイルを読み取れません」というメッセージが表示されました。 ASP.NET 4.0 32ビットと64ビットの両方でIISのISAPIおよびCGIの制限が拒否に設定されていることが判明しました。両方を許可にマークすると問題が解決しました。
iIS_IUSRSの許可があるにもかかわらず、ファイルに 読み取り専用 のマークが付いていないかどうかを確認してください。同じメッセージが表示されます。
私はこれと同じ問題を抱えていたし、これらの解決策のどれも私のために働かなかった。イベントビューアで同じエラーと「変更の監視を開始できませんでした」に関するエラーが表示され続けました。
機能した唯一のことは、フォルダをコピーして名前を変更することでした。それはIIS/ASP.NETがアクセスできないWindowsの破損したフォルダであったにちがいありません。
私はlocalhost/MyAppで構築され、Visual Studioを通して運営されているウェブサイトを運営していました - Visual Studio自身によって作成された仮想ディレクトリを通して。
私にとっての「解決策」は、仮想ディレクトリを削除してVisual Studioに再作成させることでした。
このエラーメッセージは、物理ドライブがローカルドライブではなくネットワークドライブにあることが原因であることが判明しました。そのようなドライブのアクセス許可は、デフォルトでは異なる可能性があります。たとえば、ローカルドライブの場所からローカルコンピュータのユーザーにアクセス許可が与えられているのに対し、ネットワークの場所では許可されていません。
さらに、受け入れられた答えはそのような場合には機能しません。ローカルユーザーまたはIISユーザーに権限を割り当てることができませんでした。解決策は、物理フォルダをローカルドライブに移動することでした。
私は同じ問題を抱えていて、答えとしてここに書かれたすべてのものをした後、それはまだ再現しました。問題の後半は、「Windowsの機能の有効化または無効化」で.NETが無効になっていたことです。
確かに、これは権限に関する問題です。私は以下のステップを踏みました、そしてそれは私のために働きました。
私の場合は、マップされたドライブ(subst)からページをホストしようとしていました。問題は、substが私のアカウントで実行されており、IISユーザーが同じドライブを見ることができないことです。
この問題は、microsoftaccount\[email protected]アカウントを使用して、App PoolでWindows 10上で実行していました(たとえば、ローカルアカウントではなくMicrosoftアカウントでPCにサインインしてください)。
どうやら私のコンピュータ上で何かが壊れてしまった。 IISを削除してから再度追加しても、何も起こりませんでした(IISメタベースは削除されなかったようです)。アプリプールを削除して再作成しても役に立ちませんでした。
私の解決策は、同じ設定で名前が異なる新しいApp Poolを作成することでした。これで問題は解決しました。明らかに何かがそれを削除し、同じ名前でそれを再追加することさえ修正されないであろうapppoolで破損しました。
仮想アプリケーションでこの問題が発生しました。すべての権限が設定されました。 IIS_IUSRS、AppPoolIdentityを追加し、それから全員にフルアクセスを与えました。何もうまくいきませんでした。 apppool、site、およびIISを再起動しましたが、実行されません。
仮想アプリケーションを削除して最初から追加し直したところ、動作し始めました。
私はそれが何を解決したのか知っていればいいのに。