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

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

模块IIS Web核心 通知未知 处理人尚未确定 错误码0x80070005 Config Error由于权限不足,无法读取配置文件 配置文件\\?\C:\用户\亚索\文档\Visual Studio 2008\网站\WebSite5\web.config

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

我的IUSR账户有问题。我在web.config的属性中的“组或用户名”中看不到这个帐户。

有什么问题吗?


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


很简单,IIS不能访问你的web.config。首先,我要把这个网站从你的文档文件夹中拿出来。验证它是否具有r/w权限。


最后,我找到了解决问题的办法。ASP.net帐户没有出现在IIS管理器中,因为我没有在IIS中选中它的复选框。要在Windows 7中做到这一点,请遵循以下步骤:

打开控制面板 点击“程序”链接(不是卸载程序) 点击“打开/关闭窗口功能”链接 在弹出窗口中找到“Internet信息服务IIS”并展开其节点 展开“World Wide Web Service”节点 展开“应用程序开发功能”节点 选中“ASP. ASP.”的复选框。网” 然后点击ok按钮

现在,您将在IIS管理器上看到ASP.net帐户,默认情况下您将看到IIS帐户。现在,您应该将您的ASP.net网站从“我的文档”移动到IIS有权限访问它的另一个地方(即到您计算机上的另一个分区)。现在,从IIS管理器中浏览您的网站,它应该可以工作。

非常感谢Jeff Turner的解决方案。


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

它不能读取配置文件的原因是因为运行web应用程序的进程没有访问文件/目录的权限。所以你需要给运行你的web应用的进程那些权限。

访问权限应该相当简单,即至少是“读”,根据你的应用,可能是“写”。

上面,你提到IUSR等不在web.config的属性中。如果您的意思是IUSR没有列在文件的安全选项卡中,那么这是一件好事。我们不想给IUSR任何web.config的权限。角色“IUSR”为匿名互联网用户。

文件网络。配置应该只能通过应用程序访问。

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

例如,在iis7.5中,您引用的错误消息很可能是由于您的ApplicationPoolIdentity没有被分配权限而发生的。您的web应用程序属于一个应用程序池,因此您需要给您的web应用程序池运行的操作系统帐户权限。通常这是类似于NetworkService的东西,但是你可以自定义它,让它在一个特制的帐户下运行。没有更多的信息,很难帮助你。


您需要为本地机器上的IIS_IUSRS分配权限(但是您不必为IUSR分配权限,事实上即使显式地拒绝权限,它也会工作)。

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

如果你愿意,你可以不给IIS_IUSRS组分配权限,而是给应用程序池分配权限,通常应该是“IIS APPPOOL\应用程序池名称”。


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

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

另一个解决这个问题的方法是:

给“用户”适当的权限(或IIS_IUSRS,取决于你的设置)


有时这条消息可能是您的IIS环境中缺少的组件,例如某个特定的框架,或IIS特性(如动态压缩),而不是web.config的权限。

如果是这种情况,一种解决方案是安装和使用微软平台安装程序,并安装那些缺失的组件——您可能不得不尝试一下究竟缺失了什么,因为错误日志和消息没有告诉您。


如果站点配置为使用IIS URL重写模块,但没有安装该模块,也会发生这种情况。


我也有类似的问题,我修复了它通过评论在网络的一些部分。配置文件。

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

决议:

如果您的配置文件中包含“<sectionGroup name="system.web. conf . conf”。扩展>”,注释它并运行,因为这个部分已经在Machine.config下可用。


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


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

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

安装“Microsoft URL重写模块2.0 for iis7”,这应该可以解决你的问题


Facepalm指警告:

如果配置文件的路径是错误的,也会得到这个错误。再次检查以确保在IIS中正确输入了物理路径。


如果你的网页有语法错误或问题,你会得到这个错误。配置文件。

对我来说,这是我在应用程序设置中使用的URL中的一个错误的&号。


在IIS 7.5错误页面上,你会点击页面底部的“查看更多信息”,在这种情况下,它会带你到以下微软链接: http://support.microsoft.com/kb/942055 0x80070005错误码似乎与权限相关,遵循决议2中的步骤,方法2分配正确的帐户与相关文件夹的权限应该修复它-我花了3天寻找一个解决方案,直到我遇到它,然后直接工作。


在我的情况下,这是由应用程序物理路径指向IIS中不存在的文件夹引起的。


我也遇到过同样的问题,这里有一个对我有效的解决方案。

IIS管理器 右击该网站 编辑权限 从安全选项卡添加用户'IIS_IUSRS' 给予用户'IIS_IUSRS'完全权限 将应用程序池的标识设置为“ApplicationPoolIdentity”


在我的案例中,我选择了。net Framework 2.0应用程序池,并启用了32位应用程序。我有一个。net Framework 2.0应用程序。

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


在映射驱动器时遇到这个问题,IIS不能使用映射驱动器。只需使用未映射的驱动器。


*非常简单的解决方案:

进入IIS 从左侧窗格中选择您的应用程序。 双击中间窗格中的目录浏览。 现在转到右边窗格,在操作选项卡下,只需点击“启用”

就这些!!

人们,试着去理解这个错误: Config Error由于权限不足,无法读取配置文件


探索你的网站存储的文件夹,你会得到一个额外的文件夹“aspnet_client”,删除这个文件夹,它将为你工作。

我试过了,问题解决了。

如果它对你有用,请把它作为答案,这样其他人也会得到解决方案。


这些方法对我都没用,但我终于找到了一个对我有用的方法:

删除web.config中的这一行:

<compilation debug="true" targetFramework="4.5"/>

不要删除这条线

<compilation debug="true"/>

将本地帐户IIS_IUSRS添加到安全性中,并授予其读/执行访问权限。这对我的案子很管用。


只需将namespace从[WebService(namespace = " http://tempuri.org/ ")]改为

http://microsoft.com/webservices/

我用这个方法解决了我的问题


这里没有为我工作,我发现这个命令在另一个SO答案虽然,它解决了我的问题。以管理员身份启动命令提示符并运行以下命令:

run->cmd

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

资料来源:用户Vicxx


我做这些步骤来解决这个问题 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


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

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

在服务器崩溃后,我们有一个网站开始给出“HTTP 500.19 0x80070005错误-无法读取配置文件web。配置”的错误。通常是权限或匿名用户配置,但这些都设置得很好,没有更改。怀疑IIS元数据库中的某些内容已损坏(或在%windir%\system32\inetsrv\config\applicationHost中)。我可以通过在IIS中删除站点并重新创建站点来让它恢复并运行。


尝试安装本SO中提到的IIS的“应用程序开发”子组件

在搜索框中点击“开始按钮”,输入“打开窗口功能” 开或关” 在功能窗口中,单击:“Internet信息” 服务” 点击:“万维网服务” 点击:“应用程序 开发功能” 检查(启用)特性。我都查过了 CGI。


在我的情况下,configSections必须在配置的顶部

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

。记得不能用我已经把我的网站/文件移动到一个不同的文件夹。无需更改IIS网站中的路径。

你们现在都可以笑了。


用Windows资源管理器打开你的文件夹。右键单击该文件夹并为IUSER用户添加权限。


我在web中指定值后得到了这个奇怪的错误。在下面的路径system.webServer\security\authentication

我们倾向于使用web控制IIS的配置方式。因为IIS是一个可怕的产品,很难使用其他方法进行配置。

问题在于IIS通过将部分配置锁定给外部干涉者来标记其权限。

身份验证配置可以使用IIS服务器级别的特性委托小程序解锁,设置读/写。

当然,以前我们必须自动配置IIS认证类型,现在我们必须自动解锁。我有没有提到IIS是一个很糟糕的产品?


我换了我的网。配置文件提供的实际路径比实际路径相对。

<httpPlatform processPath="F:\Projects\.....
instead of 
<httpPlatform processPath="..\approot\web.cmd"

对我来说,我从源码控制处得到了最新的消息,然后就发生了这种事。

applicationhost。配置文件的virtualDirectory路径与我机器中的路径不同。

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


我有问题,因为我复制我的网络。从prod删除配置文件,更改了所有与prod无关的内容,除了重写规则,重写为httpS。

删除了这些规则,运行正常。


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

确保physicalPath正确:


在我的例子中,我所做的只是在管理员模式下运行visual studio。


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


检查错误/HResult代码,并遵循以下指南:

“HTTP错误500.19”错误时,您打开IIS 7.0网页

0 x80070005

出现此问题的原因如下: 您正在运行Windows Vista的计算机上使用IIS 7.0。此外,您可以将Web站点配置为使用UNC直通身份验证来访问远程通用命名约定(UNC)共享。 IIS_IUSRS组没有ApplicationHost对应的权限。配置文件,用于Web。配置文件,或IIS的虚拟/应用程序目录。

解决方案

方法1

请勿将Web站点配置为使用UNC Passthrough认证方式访问远端UNC共享。请指定具有适当权限的用户帐户来访问远程UNC共享。

方法二(最有可能)

为ApplicationHost的IIS_IUSRS组赋予“读”权限。配置文件或Web。配置文件。

简单来说,你需要:

打开包含您报告的配置文件(如Web.config)的文件夹的属性。 在安全选项卡中,编辑…并添加…: IIS_IUSRS组,确认。


安装。net Core Windows Server Hosting包

https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1

https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/index?tabs=aspnetcore2x&view=aspnetcore-2.1


我在使用visual studio 2017从本地机器运行项目时遇到此错误

这些解决方案没有一个对我有效。 在一天结束时,对我有效的修复方法如下:

右键单击项目->属性-> Web ->项目Url 在项目Url文本框中,我将端口号加1,然后单击Create Virtual Directory按钮。 保存更改,然后再次运行项目。


顺便说一句,我收到了同样的错误,我的问题很简单:我错过了。net核心托管包。一旦我安装了这个工具并重新启动了服务器,就没问题了。

你可以在这里找到在windows上托管asp.net core的手册:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2


安装ASP。NET核心模块

使用以下链接下载安装程序: https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer


要解决这个问题,请确保安装了托管包。

https://dotnet.microsoft.com/download/dotnet-core/3.1


实际上,任何缺失的模块都可能导致这个问题。对我来说,是CORS模块。所以阅读网络吧。配置并寻找您在其中指定的任何附加模块,并检查它是否已安装,或以其他方式安装它。不幸的是,错误消息根本无助于发现问题。


除了

确保发布目标文件夹具有IUSR和IIS_IUSRS的正确安全设置 控制面板→程序→打开或关闭windows功能→互联网信息服务→万维网服务→应用程序开发功能→打开。net功能

如果你仍然得到错误,试着检查你的网络。配置文件。我把我的web应用程序部署到云上没有问题,但是我的本地IIS抛出了一些错误。我通过从web.config中删除一些注释代码来修复这个错误


确保在启用IIS后安装了适当的托管包

如果在启用IIS之前已经安装了托管包,重新安装托管包将解决问题

在我的例子中:

已安装的主机包 启用IIS

然后收到了这个不愉快的消息:

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

重新安装托管包解决了这个问题


就我而言,问题在于我在吸毒

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile="C:\Data\logs\stdout">
      <environmentVariables>
        <environmentVariable name="VAL" value="SOME VALUE" />
      </environmentVariables>
    </aspNetCore>

但我使用的是。net 4.6.1,在这个版本中,aspnetcore部分似乎不存在于web.config中。把它去掉就解决了问题。