我想在IIS上用IIS管理器上传我自己的asp.net网站。但是当我这样做时,我得到以下错误
HTTP错误500.19 -内部服务器错误不能被请求的页面
访问,因为该页的相关配置数据为
无效的
模块IIS Web核心
通知未知
处理人尚未确定
错误码0x80070005
Config Error由于权限不足,无法读取配置文件
配置文件\\?\C:\用户\亚索\文档\Visual Studio 2008\网站\WebSite5\web.config
我搜索了很多次这个错误的解决方案,但没有一个解决方案解决了这个错误。
我的IUSR账户有问题。我在web.config的属性中的“组或用户名”中看不到这个帐户。
有什么问题吗?
我做这些步骤来解决这个问题
Windows Server 2012, IIS 8.5。应该也适用于其他版本。
Go to server manager, click add roles and features
In the roles section choose: Web Server
Under Security sub-section choose everything (I excluded digest, IP restrictions and URL authorization as we don't use them)
Under Application Development choose .NET Extensibility 4.5, ASP.NET 4.5 and both ISAPI entries
In the features section choose: NET 3.5, .NET 4.5, ASP.NET 4.5
In the web server section choose: Web Server (all), Management Tools (IIS Management Console and Management Service), Windows
该消息说您的配置文件以某种方式损坏了。然而,它也说它实际上不能访问配置文件。所以我忽略了关于损坏/缺乏有效性的原始消息,因为这很可能只是由于缺乏授权而无法读取文件的影响。
它不能读取配置文件的原因是因为运行web应用程序的进程没有访问文件/目录的权限。所以你需要给运行你的web应用的进程那些权限。
访问权限应该相当简单,即至少是“读”,根据你的应用,可能是“写”。
上面,你提到IUSR等不在web.config的属性中。如果您的意思是IUSR没有列在文件的安全选项卡中,那么这是一件好事。我们不想给IUSR任何web.config的权限。角色“IUSR”为匿名互联网用户。
文件网络。配置应该只能通过应用程序访问。
问题是你还没有说你正在使用哪个操作系统和IIS版本,所以很难建议采取哪些步骤。
例如,在iis7.5中,您引用的错误消息很可能是由于您的ApplicationPoolIdentity没有被分配权限而发生的。您的web应用程序属于一个应用程序池,因此您需要给您的web应用程序池运行的操作系统帐户权限。通常这是类似于NetworkService的东西,但是你可以自定义它,让它在一个特制的帐户下运行。没有更多的信息,很难帮助你。