最近、IIS で asp.net サイトをホストしようとしたときにエラーが発生しました。多くの人が信頼する解決策を見つけました。
解決:
- フォルダー内のファイルに対する読み取り権限を持つIIS_IUSRSを追加します。
- IIS 認証方法を BasicAuthentication に変更する
- ウェブサイトを更新してください。
(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 Studio2010\WebSites\PointsForTime\web.config
ベストアンサー1
web.config に問題はありません。Web サイトはプロセスの下で実行されます。iis では、そのプロセスの ID を定義できます。Webサイトのアプリケーション プールが実行されるID (ネットワーク サービス、ローカル システムなど) には、web.config ファイルにアクセスして読み取る権限が必要です。
アップデート:
この更新された回答は上記と同じですが、少し長く、シンプルになり、改善されています。
まず第一に、設定ファイルで何も変更する必要はありません。問題ありません。問題はWindows のファイル権限にあります。
この問題は、アプリケーションがweb.configファイルにアクセスして読み取ることができないために発生します。
ファイルをIIS_IUSRSグループからアクセスできるようにします。web.configを右クリックしてプロパティをクリックし、セキュリティタブでIIS_IUSRSを追加します。
では、IIS_IUSRS とは何でしょうか?
Webサイトはexe ファイルのようなものです。他の exe ファイルと同様に、ユーザーによって起動され、そのユーザーに割り当てられた権限に従って実行されます。
サイトがIISで起動されると、 Web サイトのアプリケーション プールはユーザー(ネットワーク サービス、ローカル システムなど)に関連付けられます(IIS で変更することもできます)。
したがって、 IIS_IUSRSと言う場合、それはサイトが実行されている任意のユーザー(ネットワーク サービス、ローカル システムなど) を意味します。
@Sephが以下のコメントで述べているように、コンピューターがドメイン上にある場合は、IIS_IUSRSグループはローカル グループであることに注意してください。また、このユーザーを検索するときは、場所が企業ドメインではなくローカル コンピューターに設定されていることを確認してください。