提问



我想通过IIS manager在IIS上传我自己的asp.net网站。但是当我这样做时,我得到以下错误



  HTTP错误500.19 - 内部服务器错误请求的页面不能
  访问,因为页面的相关配置数据是
  无效



Module  IIS Web Core
Notification    Unknown
Handler Not yet determined
Error Code  0x80070005
Config Error    Cannot read configuration file due to insufficient permissions
Config File \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config


我多次搜索此错误的解决方案,但没有一个解决方案解决了错误。


我在IUSR帐户中遇到问题。我无法在web.config的属性中的组或用户名中看到此帐户。


问题是什么?

最佳参考


该消息表明您的配置文件在某种程度上已损坏。然而,它也说它实际上无法访问配置文件。因此我忽略了有关损坏/缺乏有效性的原始消息,因为这很可能只是由于缺乏而无法读取文件的影响授权。


它无法读取配置文件的原因是因为运行Web应用程序的进程无权访问文件/目录。因此,您需要为运行Web应用程序的进程提供这些权限。


访问权限应该相当简单,即至少读取,并且,根据您的应用程序,可能 Write 。


在上面,你提到 IUSR 等不在web.config的属性中。如果你的意思是 IUSR 没有在文件的安全选项卡中列出那么它是一件好事。一个人不想给 IUSR 任何类型的许可到 web.config 。 IUSR 这个角色是一个匿名的互联网用户。


文件 web.config 应该只能 通过您的应用程序访问。


问题是你没有说你正在使用哪个操作系统和IIS版本,因此很难建议采取哪些步骤。


即在IIS 7.5中,由于您的 ApplicationPoolIdentity 未被分配权限,可能会出现您引用的错误消息。您的Web应用程序属于应用程序池,因此您需要将权限授予您的Web应用程序的应用程序池运行的操作系统帐户。通常这类似于 NetworkService ,但您可能已经将其定制为在专用帐户下运行。没有更多信息,很难帮助你。

其它参考1


如果站点配置为使用IIS URL重写模块但未安装它,也会发生这种情况。[19]

其它参考2


最后我为我的问题找到了解决方案。 asp.net帐户没有出现在IIS管理器中,因为我没有在IIS中检查其复选框,以便在Windows 7中按照步骤执行此操作



  1. 打开控制面板

  2. 点击程序链接(不是卸载程序)

  3. 点击打开/关闭Windows功能链接

  4. 在弹出窗口中找到Internet Information services IIS并展开其节点

  5. 展开万维网服务节点

  6. 展开应用程序开发功能节点

  7. 选中ASP.NET的复选框

  8. 然后单击确定按钮



现在您将在IIS管理器上看到Asp.net帐户,默认情况下您会看到IIS帐户现在您应该将asp.net网站从我的文档移动到IIS有权访问它的另一个地方(到您的任何分区)计算机)现在从IIS管理器浏览您的网站,它应该工作。 非常感谢Jeff Turner的解决方案

其它参考3


在我的情况下安装IIS URL重写模块解决了这个问题。

其它参考4


我遇到了同样的问题,这是适合我的解决方案。



  1. IIS管理器

  2. 右键点击该网站

  3. 修改权限

  4. 从安全标签
  5. 添加了用户IIS_IUSRS
  6. 授予用户IIS_IUSRS
  7. 的完全权限
  8. 将应用程序池的标识设置为ApplicationPoolIdentity


其它参考5


对于 Visual Studio(VS)开发人员:
正如Harvey Darvey,Savage和Snives所暗示的,您的应用程序主机配置可能指向错误的应用程序物理路径。在/.vs/config/applicationhost.config 中搜索 virtualDirectory ,以更改 physicalPath (如果不正确)。


[20]


确保 physicalPath 正确无误:


[21]

其它参考6


Facepalm提醒:


如果配置文件的路径错误,您也会收到此错误。仔细检查它以确保在IIS中正确输入物理路径。

其它参考7


您需要在本地计算机上为IIS_IUSRS分配权限(但您不必为IUSR分配,实际上即使您明确拒绝权限它也能正常工作)。


要分配权限,只需右键单击文件夹,然后在安全选项卡上确保授予正确的权限,如果未列出用户,则单击添加,然后输入IIS_IUSRS(并确保在域下的本地选择了计算机,或输入名称字段 YourLocalComputerName \\ IIS_IUSRS),然后你就可以了。


如果您希望可以而不是为IIS_IUSRS组分配权限,则可以改为分配给应用程序池,该应用程序池通常应为IIS APPPOOL \\ 应用程序池名称。

其它参考8


这里没有什么对我有用,我在另一个SO答案中找到了这个命令但它解决了我的问题。只需以管理员身份启动命令提示符并运行此命令:


run->cmd

run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"


图片来源:用户Vicxx

其它参考9


同样的事情发生在我身上,尝试通过在选择网站时双击IIS 7右窗格上的连接字符串来检查这一点。


它会给你一个错误(web配置文件有问题),因为你使用了URL重写规则并且没有安装相应的组件。


安装用于IIS 7的Microsoft URL重写模块2.0,这应该可以解决您的问题

其它参考10


为我解决这个问题的另一种可能性:


IIS - >编辑权限 - >安全选项卡 - >为用户提供适当的权限(或IIS_IUSRS,具体取决于您的设置)

其它参考11


当我在web.config文件和我的IIS网站中都指定了一个同名的默认文档(如index.aspx)时,这也发生在我身上。我最终从IIS网站删除了该条目并保留了web.config条目,如下所示:


<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...

其它参考12


有时,此消息可能缺少IIS环境中的组件,例如特定框架,或动态压缩等IIS功能,而不是web.config的权限。


如果是这种情况,解决方案可以是安装和使用Microsoft平台安装程序并安装那些缺少的组件 - 您可能不得不采取措施,因为错误日志和消息不会告诉您。

其它参考13


我这样做是为了解决这个问题
Windows Server 2012,IIS 8.5。也适用于其他版本。



  1. 转到服务器管理器,单击添加角色和功能

  2. 在角色部分中选择:Web Server

  3. 在安全子部分下选择所有内容(我排除了摘要,IP限制和URL授权,因为我们不使用它们)

  4. 在应用程序开发下,选择.NET Extensibility 4.5ASP.NET 4.5ISAPI条目

  5. 在功能部分选择:NET 3.5.NET 4.5ASP.NET 4.5

  6. 在网络服务器部分选择:Web Server(全部),Management Tools(IIS管理控制台和管理服务),Windows


其它参考14


埃姆。我已将我的网站/文件移动到另一个文件夹。无需更改IIS网站中的路径。


你们现在都笑了。

其它参考15


确保将应用程序池设置为正确的框架版本。您还需要确保您的aspnet,IIS_IUSRS或IUSR用户具有对应用程序目录的读访问权限。

其它参考16


在我的例子中,它是由应用程序物理路径指向IIS中不存在的文件夹引起的。




其它参考17


我遇到了问题,因为我从prod复制了我的web.config文件,除了重写为http S 的重写规则之外,更改了所有与prod无关的内容。


删除这些规则并运行正常。

其它参考18


非常简单,IIS无法访问您的web.config。我首先从网站文件夹中取出。验证它是否具有r/w权限。

其它参考19


我也有类似的问题,我通过评论web.config文件中的一些部分来修复它。


该项目早期是在.Net 2.0中构建和部署的。迁移到.Net 3.5后,它开始抛出异常。


分辨率:



如果您的配置文件包含< sectionGroup name =system.web.extensions >,请对其进行注释并运行,因为此部分已在Machine.config下可用。

其它参考20


您需要为您的网站文件夹设置权限或将它们复制到wwwroot文件夹:)
  - 如果设置了权限,则有2种方式:
 +右键单击您的网站文件夹
 +或者右键单击IIS中的您的网站
 =>选择编辑权限并添加权限(IUSR - 默认iis用户)
祝你好运 ;-)

其它参考21


如果映射驱动器出现此问题,则IIS无法使用映射驱动器。只需使用未映射的驱动器即可。

其它参考22


如果web.config文件中存在synax错误或问题,则可能会出现此错误。


对我来说,这是我在AppSettings中使用的URL中的一个迷路符号。

其它参考23


在IIS 7.5错误页面上,您可以单击页面底部的查看更多信息,在这种情况下,它将转到以下Microsoft链接:
搜索结果http://support.microsoft.com/kb/942055搜索结果
0x80070005错误代码似乎是权限相关的,并按照解决方案2中的步骤,方法2分配正确的帐户与相关文件夹的权限应该修复它 - 我花了3天寻找解决方案,直到我遇到它,直接工作。 [23]

其它参考24


将本地帐户IIS_IUSRS添加到安全性,并授予他们读取/执行访问权限。这适用于我的情况。

其它参考25


在我的情况下,它只是评论(或删除)anonymousAuthentication属性:


 <security>
     <authentication>
         <!--<anonymousAuthentication enabled="true" />-->
     </authentication>
 </security>

其它参考26


就我而言,configSections必须位于配置的顶部


<configuration>
<configSections>
...
</configSections>
<othersetting>
</othersetting>
.....

其它参考27


对我来说,我从源代码控制中获得最新信息并且发生了这种情况


applicationhost.config文件的virtualDirectory路径与我的机器不同。


我恢复了我自己的副本,它的工作原理。我正在使用IIS express。


[24]

其它参考28


我最终通过删除我的Web应用程序的obj文件夹解决了这个问题。重建解决方案后,问题就消失了。

其它参考29


在我的例子中,我选择了使用.NET Framework 2.0的应用程序池并启用了32位应用程序。我有.NET Framework 2.0应用程序。


我在SQL Server复制项目上收到试图加载格式不正确的程序错误