我最近遇到了一个错误,试图用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


当前回答

你不需要改变你的web.config中的任何东西。

问题在于文件系统权限。您的文件权限不允许IIS_IUSRS用户访问web。配置(或可能是任何文件)。更改他们在windows中的文件权限,允许IIS_IUSRS帐户访问它。

其他回答

当您将权限授予IIS_IUSRS时,您应该在Web应用程序的IIS/身份验证部分检查匿名身份验证凭证使用应用程序池标识而不是IUSR。

使IIS_IUSRS组可以访问该文件。右键点击你的网页。展开属性,在“security”页签下添加“IIS_IUSRS”。给予组读/写权限。

当组不可用时,将IIS_IUSRS替换为ComputerName\IIS_IUSRS

上面的答案很有帮助,但如果这对任何人都有帮助的话——我有一个确切的问题,结果是我(windows网络)共享了站点托管的根文件夹。我们终止了共享,并添加了用户权限来读取/执行,它再次工作得很好。

我怀疑是股票搞砸了。

我在Windows 10上使用microsoftaccount\email@contosa.com帐户运行应用程序池时遇到了这个问题(例如,用Microsoft帐户而不是本地帐户登录PC)。

显然在我的电脑上有些东西损坏了;删除IIS并重新添加它没有任何作用(因为IIS元数据库似乎没有被删除)。删除和重新创建应用程序池也无济于事。

我的解决方案是创建一个新的应用程序池,使用相同的设置,但名称不同。这为我解决了问题;显然,有些东西已经损坏了与appool,即使删除它,重新添加它与相同的名称不会修复。

如果应用程序位于虚拟目录中,而文件的路径是映射驱动器,就会发生这种情况。

如果您将文件的路径更改到本地驱动器,这将解决问题,如果这确实是您的问题。