如何修复 HTTP 错误 500.22 - 内部服务器错误检测到 ASP.NET 设置不适用于集成托管管道模式

Posted

技术标签:

【中文标题】如何修复 HTTP 错误 500.22 - 内部服务器错误检测到 ASP.NET 设置不适用于集成托管管道模式【英文标题】:How to fix HTTP Error 500.22 - Internal Server Error An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode 【发布时间】:2016-01-26 12:07:01 【问题描述】:

我正在学习Http modules,在上次尝试中我收到了:

HTTP 错误 500.22 - 内部服务器错误 ASP.NET 设置已被 检测到不适用于集成托管管道模式。

建议的解决方案之一是:

从 IIS Express 安装目录,运行 appcmd migrate config "Default Web Site/"。

所以我从命令提示符转到C\Program Files\IIS Express,然后我执行:appcmd migrate config "Default Web Site/"

我收到的命令“迁移”在对象配置上不受支持。

如何正确操作?

【问题讨论】:

您使用哪个版本的 IIS Express?它通常是完整 IIS 的命令。 如果您有任何解决方案,请告诉我,这是我的帖子,还有更多作业 - ***.com/questions/40176035/… 【参考方案1】:

查看我的SO Post

最后,我可以为 VS.Net 2015 及其 IISExpress 配置破解它。 IT 无法“从外部”配置它,如果您在 VS.Net 之外继续修改 IIS 或 IISExpress 设置,则不会有任何效果。

我花了一段时间才将注意力集中在 VS.Net 项目属性和配置上。我发现 VS.Net 创建了自己的“applicationhost.config”版本,可以在 -

\.vs\config\applicationhost.config

这是我必须更改应用程序池的文件 (applicationPool="Clr4ClassicAppPool) -

    <sites>
        <site name="WebSite1" ... ignore this sction if present
        </site>
        <site name="myProject" id="2">
            <application path="/" applicationPool="Clr4ClassicAppPool">
                <virtualDirectory path="/" physicalPath="D:\Source\myProject" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:1960:localhost" />
            </bindings>
        </site>

您只需要更改应用程序池(您的经典应用程序池名称可能不同,在这种情况下从同一文件中获取正确的名称)。另外请确保您更新的是正确的“ site" 节点(从 VS.Net 调试时 Web 应用程序的正确 localhost url)

如果仍然存在问题,请设置以下 -

<applicationDefaults applicationPool="Clr4IntegratedAppPool" />

希望这会有所帮助。

【讨论】:

【参考方案2】:

您应该使用以下内容更改您的 web.config:

<system.webServer>
<validation validateIntegratedModeConfiguration="false" /> 
</system.webServer>

【讨论】:

以上是关于如何修复 HTTP 错误 500.22 - 内部服务器错误检测到 ASP.NET 设置不适用于集成托管管道模式的主要内容,如果未能解决你的问题,请参考以下文章

试图实施 ELMAH - 不断收到 IIS HTTP 500.22 错误

HTTP 错误 500.22 - Internal Server Error

HTTP 错误 500.22 - Internal Server Error

IISExpress VS.Net 2015 - HTTP 错误 500.22 - 检测到不适用于集成托管管道模式的 ASP.NET 设置

HTTP错误500.22 检测到在集成的托管管道模式下不适用的ASP.NET设置

ASP.NET 网站迁移 HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用