首页 文章

无法访问请求的页面,因为页面的相关配置数据无效错误

提问于
浏览
412

我想通过 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 的属性"group or user names"中看不到此帐户 .

问题是什么?

30 回答

  • 149

    我发生了同样的事情,请在选择网站时双击IIS 7右窗格中的连接字符串,尝试检查此项 .

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

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

  • 49

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

    enter image description here

    确保 physicalPath 正确:

    enter image description here

  • 6

    Facepalm alert:

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

  • 379

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

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

    图片来源:用户Vicxx

  • 22

    您需要在本地计算机上为IIS_IUSRS分配权限(但您不必为IUSR分配,实际上即使您明确拒绝权限也可以使用它) .

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

    如果您希望可以而不是为IIS_IUSRS组分配权限,则可以改为分配给应用程序池,该应用程序池通常应为“IIS APPPOOL \ app pool name” .

  • 1

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

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

  • 2

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

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

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

    在上面,你提到IUSR等不在 web.config 的属性中 . 如果你的意思是IUSR没有在文件的安全选项卡中列出,那么's a good thing. One doesn't想要给予IUSR对web.config的任何类型的权限 . 角色IUSR是一个匿名的互联网用户 .

    文件web.config应该可以通过您的应用程序访问 only .

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

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

  • 5

    如果站点配置为使用IIS URL Rewrite module但未安装,也会发生这种情况 .

  • 2

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

    • 打开控制面板

    • 点击“程序”链接(不卸载程序)

    • 单击“打开/关闭Windows功能”链接

    • 在弹出窗口中找到“Internet信息服务IIS”并展开其节点

    • 展开“万维网服务”节点

    • 展开“应用程序开发功能”节点

    • 选中“ASP.NET”复选框

    • 然后单击“确定”按钮

    现在您将在IIS管理器上看到Asp.net帐户,默认情况下您会看到IIS帐户现在您应该将asp.net网站从“我的文档”移动到IIS有权访问它的另一个地方(到您的任何分区)计算机)现在从IIS管理器浏览您的网站,它应该工作 . Thanks a lot for Jeff Turner for the solution

  • 2

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

  • 4

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

    • IIS管理器

    • 右键单击该网站

    • 编辑权限

    • 从“安全”选项卡添加了用户'IIS_IUSRS'

    • 给予用户完整权限'IIS_IUSRS'

    • 设置应用程序池's Identity to ' ApplicationPoolIdentity'

  • 1

    我执行这些步骤来解决Windows Server 2012,IIS 8.5中的此问题 . 也适用于其他版本 .

    • 转到服务器管理器,单击“添加角色和功能”

    • 在角色部分选择: Web Server

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

    • 在应用程序开发下,选择 .NET Extensibility 4.5ASP.NET 4.5 和两个 ISAPI 条目

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

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

  • 9

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

  • 2

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

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

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

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

  • 3

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

    你们现在都笑了 .

  • 545

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

  • 4

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

    application setting screenshot

  • 38

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

    删除了这些规则并运行良好 .

  • 1

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

  • 1

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

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

    决议:

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

  • 8

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

    对我来说,这是我在AppSettings中使用的迷路ampersand in a URL .

  • 4

    使用映射驱动器遇到此问题,IIS无法使用映射驱动器 . 只需使用未映射的驱动器 .

  • 33

    浏览您的网站所在的文件夹,看到您将获得一个额外的文件夹“aspnet_client”删除它文件夹,它将为你工作 .

    我试过这个我的问题解决了 .

    如果它适合你,请把它作为答案,以便其他人也可以得到解决方案 .

  • 5

    在IIS 7.5错误页面上,单击页面底部的'View more Information',在这种情况下,它将转到以下Microsoft链接:

    http://support.microsoft.com/kb/942055

    0x80070005错误代码似乎是权限相关的,并按照解决方案2中的步骤,方法2分配具有相关文件夹权限的正确帐户应修复它 - 我花了3天寻找解决方案,直到我遇到它,直接工作 .

  • 1

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

  • 3

    在我的例子中,它只是评论(或删除)anonymousAuthentication属性:

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

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

    <configuration>
    <configSections>
    ...
    </configSections>
    <othersetting>
    </othersetting>
    .....
    
  • 3

    对我来说,我从源代码控制中得到了最新消息,而这种情况发生

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

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

    enter image description here

  • 1

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

相关问题