由于权限不足,无法读取配置文件

我最近在尝试用IIS托管我的asp.net站点时遇到了一个错误。我找到了一个很多人都信以为真的解决办法

解决方案:

  1. 添加对文件夹中的文件具有读取权限的IIS_IUSR
  2. 将IIS身份验证方法更改为基本身份验证
  3. 刷新网站。它会起作用的

(http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html)

但是,我应该在web.config文件中添加什么?我以前从未编辑过它。以下是其当前内容:

<?xml版本="1.0“&燃气轮机;
&lt--
有关如何配置ASP.NET应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
--&燃气轮机;
<配置>
<连接管柱>
<添加名称="“默认连接”;connectionString="数据源=。\SQLEXPRESS;AttachDbFilename=| DataDirectory |\Database.mdf;综合安全=真实;用户实例=True"
providerName="System.Data.SqlClient“/&燃气轮机;
&lt/连接管柱>
<系统.web>
<编译调试="“真的”;严格的;假;显式="“真的”;targetFramework="4.0“/&燃气轮机;
&lt/系统.web>
&lt/配置>

我的错误是:

配置错误:由于权限不足,无法读取配置文件
配置文件:\?\C:\Users******\Documents\visualstudio2010\WebSites\PointsForTime\web.Config

您的web.config没有问题。您的网站在一个进程下运行。在iis中,您可以定义该进程的标识。网站的应用程序池运行的标识(网络服务、本地系统等)应具有访问和读取web.config文件的权限

更新:

更新后的答案与上面的答案相同,但有点长、简单和改进。

首先:您不必更改配置文件中的任何内容没关系。问题在于windows文件权限

出现此问题的原因是应用程序无法访问web.config文件

使IIS\u IUSRS组可以访问该文件。只需右键单击web.config并单击属性,在安全选项卡下,添加IIS\u IUSRS

那么这是什么呢

您的网站与exe文件类似。与任何exe文件一样,它应该由用户启动,并根据分配给该用户的权限运行

当您的网站在IIS中启动时,您网站的应用程序池用户关联(网络服务、本地系统等)(可以在IIS中更改)

因此,当你说IIS\u IUSRS时,它意味着你的站点正在运行的任何用户(网络服务、本地系统等)

正如下面的评论中提到的@Seph如果您的计算机位于域上,请记住IIS_IUSRS组是一个本地组。
另外,请确保当您试图查找此用户时,请检查其位置,该位置应设置为本地计算机,而不是公司域

发表评论