我最近遇到了一个错误,试图用IIS托管我的asp.net站点。我找到了一个很多人信誓旦旦的解决办法。

解决方案: 对文件夹中的文件添加具有读权限的IIS_IUSRS 修改IIS认证方式为BasicAuthentication 刷新网站。会有用的

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

我在我的网里加了什么?配置文件?我以前从来没编辑过。以下是其当前内容:

<?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: \用户* * * * *网站视觉Studio2010 \ \文件\ \ PointsForTime \ web . config


当前回答

我使用subst创建了从D:到C:的映射,以便与团队中的其他开发人员保持相同的设置。这也给了我相同的错误描述。把这个拿掉,我就把它修好了。

其他回答

我们在apppool中使用特定的身份运行一个网站,只有在给予该用户对包含web的文件夹的读访问权之后。配置会起作用。 在添加“everyone”用户read后,我们追踪到这一点,一切工作正常。

编者注:按照这个答案的建议做:“将身份更改为LocalSystem”是危险的!LocalSystem帐户是一个… 完全受信任的帐户,比管理员帐户更受信任。这个帐户在单个机器上没有什么是不能做的,它有权作为机器访问网络(这需要Active Directory并授予机器帐户权限)


将标识从ApplicationPoolIdentity更改为LocalSystem即可;)。

我使用的是win7 64和IIS 7.5

更多关于 iis7.5和win7中的应用程序池标识

不像IIS_IUSRS那样授予所有IIS用户访问权,您也可以使用站点仅授予应用程序池标识访问权。这是微软推荐的方法,更多信息可以在这里找到:

https://support.microsoft.com/en-za/help/4466942/understanding-identities-in-iis

https://learn.microsoft.com/en-us/iis/manage/configuring-security/application-pool-identities

Fix:

首先查看上面的配置文件参数,以确定需要访问的位置。在本例中,需要访问整个发布文件夹。右键单击文件夹,选择属性,然后选择Security选项卡。

点击编辑…然后添加....

现在看看Internet信息服务(IIS)管理器和应用程序池:

在我的情况下,我的网站在LocalTest应用程序池下运行,然后我输入名称IIS appool \LocalTest

按“检查名称”键,就会找到用户。

给用户所需的访问权限(默认:读取和执行,列出文件夹内容和读取),一切都应该工作。

检查文件是否被标记为只读,不管是否有IIS_IUSRS权限,它都会显示相同的消息。

在某些情况下是网络。配置文件格式不正确。 打开网络。配置并粘贴以下代码:

<?XML版本="1.0"编码="utf-8"?> < >配置 > < /配置