当 apphost 配置中存在 system.web 配置时,IIS 8 中出现 HTTP 错误 500.19

问题描述 投票:0回答:4

我们有一个实用程序,可以在安装到客户服务器上时自动设置 ASP.NET Web 应用程序。传统上,该实用程序会在 applicationHost.config 中将许多配置添加到新应用程序的位置路径中。我们使用

Microsoft.Web.Administration
配置类以编程方式执行此操作。

这在 IIS 7.0 和 IIS 7.5 中工作正常,但是当我们尝试在 IIS 8(服务器 2012)中安装相同的配置时,由于据称格式错误的 XML 元素,我们开始收到服务器上托管的所有内容的 500.19 服务器错误(

HRESULT 0x8007000d
)。我系统地检查了我们安装的所有配置,它似乎是
system.web/httpRuntime
maxRequestLength
属性(见下文)。看来
system.web
配置元素本身就是罪魁祸首,因为直到删除该元素后错误才会消失。

我已经确认

system.web/httpRuntime
的部分定义表明它在任何地方都是允许的,并且您可以在配置的其他级别(例如
web.config
)设置 system.web 配置,而不会出现问题。为什么我们不能在applicationHost.config中设置它?

<location path="Default Web Site/ManagementConsole">
    <!-- ... more config ... -->
    <system.web>
        <httpRuntime maxRequestLength="10240" />
    </system.web>
</location>

500.19 错误引用的文件是临时应用程序池配置文件 (C:\inetpub emp pppools pppoolname pppoolname.config)。该文件的内容是:

但是当我进入 applicationHost.config 并添加

system.web
的节组定义和
httpRuntime
的节定义时,500.19 中的消息更改为声明存在重复的
system.web/httpRuntime
定义!

所以我无法定义它,我也无法定义它。什么??

asp.net iis iis-8
4个回答
3
投票

我见过当未安装所有必需的模块时会发生此错误。它不会告诉您模块丢失,而是会抱怨配置已损坏。检查您在 IIS 7/7.5 计算机上安装的相同模块是否也安装在 IIS 8 上。


3
投票

在我们的例子中,我们没有安装 URL 重写。它没有抱怨它丢失,而是给了我们这个通用消息。

我认为将站点从 IIS 7.x 转移到 8.x 时您需要做的是首先验证所有插件是否已正确安装。


2
投票

我有一个类似的问题,我发布到SOhere。另请参阅关于 功能委托的这篇文章。


2
投票

您好,我发现这个 YouTube 视频很有帮助IIS 7 教程,它也可以帮助您解决问题。或者,也许此链接可以帮助您。排查 IIS 7 中的 HTTP 500.19 错误当您访问 IIS 7.0 上托管的网站时出现错误消息:“HTTP 错误 500.19 – 内部服务器错误”像专业人士一样排除 IIS7 错误

我提供的链接将指导您确定问题的原因,根据您的陈述,问题的原因在不同的情况下会发生变化。下面是一个解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.