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

时间:2013-01-29 18:40:11

标签: asp.net iis iis-8

我们有一个实用程序,可以在客户服务器上安装时自动设置ASP.NET Web应用程序。此实用程序通常在applicationHost.config中为新应用程序的位置路径添加许多配置。我们使用Microsoft.Web.Administration配置类以编程方式执行此操作。

这在IIS 7.0和IIS 7.5中运行良好,但是当我们尝试在IIS 8(Server 2012)中安装相同的配置时,由于XML元素的错误,我们开始为服务器上托管的所有内容获取500.19服务器错误( HRESULT 0x8007000d)。我系统地完成了我们安装的所有配置,它似乎是system.web / httpRuntime maxRequestLength属性(见下文)。似乎system.web配置元素本身就是罪魁祸首,因为错误在消除之前不会消失。

我已经确认system.web / httpRuntime的section定义表明它是Everywhere允许的,你可以在配置的其他级别(例如web.config)设置sy​​stem.web配置而不会出现问题。为什么我们不能在applicationHost.config中设置它?

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

编辑:我注意到在原始帖子之后,引用的500.19错误的文件是临时应用程序池配置文件(C:\ inetpub \ temp \ apppools \ apppoolname \ apppoolname.config。该文件的内容是:

<!-- ERROR: There's been an error reading or processing the applicationhost.config file.  Line number: 905  Error message: The configuration section 'system.web' cannot be read because it is missing a section declaration
-->

但是,当我进入applicationHost.config并为system.web添加一个部分组定义和一个httpRuntime的部分定义时,500.19中的消息将更改为声称存在重复的system.web / httpRuntime定义!所以我无法定义它,我无法定义它。什么?

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

在我们的案例中,我们没有安装URL Rewrite。而不是抱怨它错过它只是给了我们这个通用的消息。

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

答案 2 :(得分:2)

我有一个类似的问题,我发布到SO here。另请参阅Feature Delegation上的这篇文章。

答案 3 :(得分:2)

您好我发现此YouTube视频有用IIS 7 Tutorial,它也可以帮助您解决问题。或许这些链接可以帮助您。Troubleshooting HTTP 500.19 Errors in IIS 7Error message when you visit a Web site that is hosted on IIS 7.0: "HTTP Error 500.19 – Internal Server Error"Troubleshoot IIS7 errors like a pro

我提供的链接将指导您确定问题的原因,从您的声明中,它在不同的实例中发生变化。下面是一个解决方案。