我想通过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
。
有什么问题?
答案 0 :(得分:589)
如果网站配置为使用IIS URL Rewrite module但未安装该网站,也会发生这种情况。
答案 1 :(得分:409)
最后,我找到了解决问题的方法。 ASP.net帐户没有出现在IIS管理器中,因为我没有在IIS中检查其复选框。要在Windows 7中执行此操作,请执行以下步骤:
现在,您将在IIS管理器上看到ASP.net帐户,默认情况下您将看到IIS帐户。现在,您应该将ASP.net网站从“我的文档”移动到IIS有权访问它的另一个地方(即计算机上的另一个分区)。现在,从IIS管理器浏览您的网站,它应该工作。
非常感谢Jeff Turner的解决方案。
答案 2 :(得分:159)
该消息表明您的配置文件在某种程度上已损坏。但是它也说它实际上无法访问配置文件。因此,我忽略了有关损坏/缺乏有效性的原始消息,因为这很可能只是由于缺乏授权而无法读取文件的影响。
无法读取配置文件的原因是因为运行Web应用程序的进程无权访问文件/目录。因此,您需要为运行Web应用程序的进程提供这些权限。
访问权限应该相当简单,即至少读取,并且,根据您的应用程序,可能写。
上面,你提到 IUSR 等不在web.config
的属性中。如果你的意思是 IUSR 没有在文件的安全选项卡中列出,那么这是一件好事。一个人不想给 web.config 赋予 IUSR 任何类型的权限。角色 IUSR 是一位匿名的互联网用户。
文件 web.config 应该仅可以通过您的应用程序访问。
问题是你没有说过你正在使用哪个操作系统和IIS版本,因此很难建议采取哪些步骤。
即。在IIS 7.5中,由于您的 ApplicationPoolIdentity 未分配权限,可能会出现您引用的错误消息。您的Web应用程序属于应用程序池,因此您需要授予Web应用程序的应用程序池运行的OS帐户的权限。通常这类似于 NetworkService ,但您可能已将其定制为在专用帐户下运行。没有更多信息,很难帮助你。
答案 3 :(得分:50)
在我的情况下安装IIS URL Rewrite模块解决了这个问题。
答案 4 :(得分:42)
我遇到了同样的问题,这是适合我的解决方案。
答案 5 :(得分:36)
对于 Visual Studio(VS)开发人员: 正如Harvey Darvey,Savage和Snives所暗示的,您的应用程序主机配置可能指向错误的应用程序物理路径。在 /.vs/config / applicationhost.config 中搜索 virtualDirectory ,如果不正确,请更改 physicalPath 。
确保 physicalPath 正确无误:
答案 6 :(得分:23)
Facepalm提醒:
如果配置文件的路径错误,您也会收到此错误。仔细检查它以确保在IIS中正确输入物理路径。
答案 7 :(得分:18)
您需要在本地计算机上为IIS_IUSRS分配权限(但您不必为IUSR分配,实际上即使您明确拒绝权限也会有效。)
要分配权限,只需右键单击该文件夹,然后在安全选项卡上确保授予正确的权限,如果未列出用户,则单击“添加”,然后输入IIS_IUSRS(并确保在“域”下“选择本地计算机,或在名称字段 YourLocalComputerName \ IIS_IUSRS中输入”,然后你就可以了。
如果您希望可以而不是为IIS_IUSRS组分配权限,则可以改为分配给应用程序池,该应用程序池通常应为“IIS APPPOOL \ 应用程序池名称”。
答案 8 :(得分:9)
同样的事情发生在我身上,请在选择网站时双击IIS 7右侧窗格上的连接字符串,然后尝试检查。
它会给你一个错误(web配置文件有问题),因为你使用了URL重写规则并且没有安装相应的组件。
安装“用于IIS 7的Microsoft URL重写模块2.0”,这应该可以解决您的问题
答案 9 :(得分:8)
这里没有什么对我有用,我在另一个SO答案中找到了这个命令但它解决了我的问题。只需以管理员身份启动命令提示符并运行此命令:
run->cmd
run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"
信用:用户Vicxx
答案 10 :(得分:6)
埃姆。我已将我的网站/文件移动到另一个文件夹。无需更改IIS网站中的路径。
你们现在都笑了。
答案 11 :(得分:6)
为我解决这个问题的另一种可能性:
IIS - >修改权限 - >安全选项卡 - >给用户"用户"适当的权限(或IIS_IUSRS,具体取决于您的设置)
答案 12 :(得分:5)
我这样做是为了解决这个问题 Windows Server 2012,IIS 8.5。也适用于其他版本。
Web Server
.NET Extensibility 4.5
,ASP.NET 4.5
和两个ISAPI
条目NET 3.5
,.NET 4.5
,ASP.NET 4.5
Web Server
(全部),Management Tools
(IIS管理控制台和管理服务),Windows 答案 13 :(得分:5)
确保将应用程序池设置为正确的框架版本。您还需要确保您的aspnet,IIS_IUSRS或IUSR用户具有对应用程序目录的读取权限。
答案 14 :(得分:4)
有时,此消息可能会丢失IIS环境中的组件,例如特定框架,或动态压缩等IIS功能,而不是web.config的权限。
如果是这种情况,解决方案可以是安装和使用Microsoft平台安装程序并安装那些缺少的组件 - 您可能不得不采取措施,因为错误日志和消息没有告诉您
答案 15 :(得分:4)
当我在web.config文件和我的IIS网站中都指定了一个同名的默认文档(如index.aspx)时,这也发生在我身上。我最终从IIS网站删除了该条目并保留了web.config条目,如下所示:
<system.webServer>
<defaultDocument>
<files>
<add value="index.aspx" />
</files>
</defaultDocument>...
答案 16 :(得分:3)
您需要为您的网站文件夹设置权限或将其复制到wwwroot文件夹:) - 如果设置权限,则有2种方式: +右键单击您的网站文件夹 +或者右键单击IIS中的“您的网站” =&GT;选择编辑权限并添加权限(IUSR - 默认iis用户) 祝你好运; - )
答案 17 :(得分:3)
我遇到了这个问题,因为我从prod复制了我的web.config文件,更改了除了重写为http S 的重写规则之外的所有相关内容。
删除了这些规则并运行良好。
答案 18 :(得分:3)
就我而言,它是由应用程序物理路径指向IIS中不存在的文件夹引起的。
答案 19 :(得分:2)
如果web.config文件中存在语法错误或问题,则可能会出现此错误。
对我来说,这是我在AppSettings中使用的迷路ampersand in a URL。
答案 20 :(得分:2)
浏览您网站所在的文件夹,看到您将获得一个额外的文件夹“aspnet_client”删除该文件夹,它将适合您。
我试过了,我的问题解决了。
如果它对您有用,请将其作为答案,以便其他人也能得到解决方案。
答案 21 :(得分:2)
映射驱动器出现此问题,IIS无法使用映射驱动器。只需使用未映射的驱动器。
答案 22 :(得分:2)
只是插手,我遇到了同样的错误,我的问题也很简单:我错过了.NET Core Hosting Bundle。一旦我安装了该工具并重新启动服务器,就可以了。
您可以在以下位置找到在Windows上托管asp.net核心的手册:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2
答案 23 :(得分:2)
要解决此问题,请确保已安装主机捆绑包。
答案 24 :(得分:2)
我也有类似的问题,我通过评论web.config文件中的一些部分来修复它。
该项目早期已在.Net 2.0中构建和部署。迁移到.Net 3.5后,它开始抛出异常。
如果您的配置文件包含“&lt; sectionGroup name =”system.web.extensions &gt;“,请对其进行注释并运行,因为此部分已在Machine.config下可用。
答案 25 :(得分:2)
非常简单,IIS无法访问您的web.config。我首先从网站文件夹中取出网站。验证它是否具有r / w权限。
答案 26 :(得分:1)
我最终删除了我的网络应用程序的obj
文件夹,从而解决了这个问题。重建解决方案后,问题就消失了。
答案 27 :(得分:1)
这些对我没有用,但我终于找到了一个对我有用的解决方案:
在web.config中删除此行:
<compilation debug="true" targetFramework="4.5"/>
请勿删除此行
<compilation debug="true"/>
答案 28 :(得分:1)
对我来说,我从源代码控制中得到了最新消息,而且发生了这种情况。
applicationhost.config文件的virtualDirectory路径与我的机器不同。
我恢复了我自己的副本并且它有效。我正在使用IIS express。
答案 29 :(得分:1)
在我的情况下,它只是评论(或删除)anonymousAuthentication属性:
[pm_meta_id] => 3041
答案 30 :(得分:1)
将本地帐户IIS_IUSRS添加到安全性,并授予他们读取/执行访问权限。这适用于我的情况。
答案 31 :(得分:1)
在IIS 7.5错误页面上,您可以单击页面底部的“查看更多信息”,在这种情况下,它将转到以下Microsoft链接:
http://support.microsoft.com/kb/942055
0x80070005错误代码似乎是权限相关的,并按照解决方案2中的步骤,方法2分配具有相关文件夹权限的正确帐户应修复它 - 我花了3天寻找解决方案,直到我遇到它,直接工作。
答案 32 :(得分:0)
尝试安装IIS的“应用程序开发”子组件
答案 33 :(得分:0)
服务器崩溃后我们有一个站点开始给出“HTTP 500.19 0x80070005错误 - 无法读取配置文件web.config”错误。通常它将是权限或匿名用户配置,但那些设置正常并且没有更改。怀疑某些内容在IIS元数据库中被破坏(或者在IIS7中的%windir%\ system32 \ inetsrv \ config \ applicationHost.config中)我能够通过删除IIS中的站点并重新创建它来使其恢复运行
答案 34 :(得分:0)
使用Windows Explore打开您的项目内容的文件夹。右键单击该文件夹并为IUSER用户添加权限。
答案 35 :(得分:0)
我更改了我的web.config文件以提供实际路径而不是亲戚。
<httpPlatform processPath="F:\Projects\.....
instead of
<httpPlatform processPath="..\approot\web.cmd"
答案 36 :(得分:0)
只需将名称空间从[WebService(Namespace =&#34; http://tempuri.org/&#34;)]更改为
http://microsoft.com/webservices/
我用这个解决方案解决了我的问题
答案 37 :(得分:0)
就我而言,我所做的只是以管理员模式运行visual studio。
答案 38 :(得分:0)
检查错误/ HResult代码并遵循本指南:
出现此问题的原因有以下几种:
- 您在运行Windows Vista的计算机上使用IIS 7.0。此外,您将网站配置为使用UNC Passthrough身份验证来访问远程通用命名约定(UNC)共享。
IIS_IUSRS组对ApplicationHost.config文件,Web.config文件或IIS的虚拟/应用程序目录没有相应的权限。
不要将网站配置为使用UNC Passthrough身份验证来访问远程UNC共享。而是指定具有访问远程UNC共享的适当权限的用户帐户。
为
IIS_IUSRS
文件或ApplicationHost.config
文件的Web.config
组授予读取权限。
所以简单来说,你需要:
Web.config
)。IIS_IUSRS
分组并确认。答案 39 :(得分:0)
安装.NET Core Windows Server Hosting软件包
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1
答案 40 :(得分:0)
使用Visual Studio 2017从本地计算机运行项目时出现此错误
这些解决方案中没有一个对我有用。 归根结底,对我有用的修复方法是:
答案 41 :(得分:0)
在我的情况下,我选择了使用.NET Framework 2.0的应用程序池并启用了32位应用程序。我有.NET Framework 2.0应用程序。
答案 42 :(得分:0)
安装ASP.NET Core模块
使用以下链接下载安装程序: https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
答案 43 :(得分:0)
实际上,任何丢失的模块都可能导致此问题。就我而言,它是CORS Module
。因此,请阅读web.config
并查找您在其中指定的所有插件模块,并检查其是否已安装,否则,请进行安装。不幸的是,错误消息根本无法帮助发现问题。
答案 44 :(得分:-3)
* 非常简单的解决方案:
转到IIS
从左侧窗格中选择您的应用程序。
双击中间窗格中的目录浏览。
现在转到右侧窗格并在“操作”标签下,点击“启用”
这就是全部!!
人们,试着理解错误: 配置错误由于权限不足,无法读取配置文件