HTTP 错误 500.22 - 内部服务器错误(已检测到不适用于集成托管管道模式的 ASP.NET 设置。)
Posted
技术标签:
【中文标题】HTTP 错误 500.22 - 内部服务器错误(已检测到不适用于集成托管管道模式的 ASP.NET 设置。)【英文标题】:HTTP Error 500.22 - Internal Server Error (An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.) 【发布时间】:2011-09-10 08:22:23 【问题描述】:我在查看应用程序时收到此错误。
.Net framework 2.0、3.5 和 4 已安装,我使用的是 SQL 2008。谁能告诉我这个错误的解决方案是什么?
【问题讨论】:
【参考方案1】:此问题是由您的网站设置的应用程序池设置中的管道模式引起的。
短
简单方法将应用程序池模式更改为启用经典管道的模式。 正确的方式 您的 web.config / web 应用需要更改以支持集成管道。通常这就像删除部分 web.config 一样简单。简单的方法(不好的做法)将以下内容添加到您的 web.config。见http://www.iis.net/ConfigReference/system.webServer/validation
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
长 如果可能,最好的办法是更改应用程序以支持集成管道。 IIS6 和 IIS7.x 之间存在许多会导致此错误的更改。您可以在http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/ 找到有关这些更改的详细信息。
如果您无法做到这一点,则需要更改应用程序池,这可能更难执行,具体取决于您对 Web 服务器的可用性。
转到网络服务器 打开 IIS 管理器 导航到您的网站 单击右侧操作窗格中的高级设置 在应用程序池下,将其更改为已启用经典的应用程序池。查看http://technet.microsoft.com/en-us/library/cc731755(WS.10).aspx了解更改应用程序池的详细信息
如果您需要使用经典管道创建应用程序池,请查看http://technet.microsoft.com/en-us/library/cc731784(WS.10).aspx
如果您无权访问服务器来进行此更改,则需要通过您的托管服务器执行此操作并联系他们寻求帮助。
欢迎提问。
【讨论】:
以编程方式 如何知道应用程序池模式是经典还是集成? @Kiquenet 查看system.web.httpruntime.usingintegratedpipeline 并在运行时检查该值 感谢您的建议。我对点网很陌生。我通过上面描述的简单方法解决了我的问题。再次感谢@Kirk【参考方案2】:在您的 web.config 中,确保这些键存在:
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>
【讨论】:
【参考方案3】:我将 web.config 文件更改为以两种形式使用 HTTPMODULE:
IIS:6
<httpModules>
<add name="Module" type="app.Module,app"/>
</httpModules>
IIS:7.5
<system.webServer>
<modules>
<add name="Module" type="app.Module,app"/>
</modules>
</system.webServer>
【讨论】:
【参考方案4】:使用 VS2013 .net 4.5
我也有同样的问题。
错误消息页面上的“最可能的原因”部分提供了最大的帮助。为了我。它说“这个应用程序在 system.web/httpModules 部分定义配置。”然后在“您可以尝试的事情”部分中显示“将配置迁移到 system.webServer/modules 部分”。
<system.web>
<httpHandlers>
<add type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" validate="false" />
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET" path="DX.ashx" validate="false" />
</httpHandlers>
<httpModules>
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
</httpModules>
</system.web>
进入 system.webServer 部分。
<system.webServer>
<handlers>
<add type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" name="ASPxUploadProgressHandler" preCondition="integratedMode" />
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET" path="DX.ashx" name="ASPxHttpHandlerModule" preCondition="integratedMode" />
</handlers>
<modules>
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
</modules>
</system.webServer>
【讨论】:
嗨,我有类似的问题,您是否将其从这对我有用:
-
删除最初创建的网站。
在 IIS 中重新创建站点
清洁解决方案
构建解决方案
当我最初创建该网站时,似乎有些事情发生了。我讨厌类似于“重新启动计算机,然后重新安装 Windows”的解决方案,但不知道是什么导致了错误。但是,这对我有用。快速简单。希望对其他人有所帮助。
【讨论】:
【参考方案6】:IIS 7 Win 7 Enterprise Pack 也有类似的问题。我已经更改了@Kirk 回答中的应用程序池:
将应用程序池模式更改为启用经典管道的模式“。但我没有运气。
再添加一个步骤对我有用。
我已将我网站的 .NET Frameworkis v2.0
更改为 .NET Frameworkis v4.0.
in ApplicationPool
【讨论】:
【参考方案7】:我个人在将 IIS6 网站迁移到 IIS7 时遇到了这个问题,为了解决这个问题,我使用了这个命令行:%windir%\System32\inetsrv\appcmd migrate config "MyWebSite\"
确保备份您的 web.config
【讨论】:
【参考方案8】:将应用程序池设置为经典 .NET appool 并确保 Classic .Net apppool 在经典托管管道线上工作。
【讨论】:
以上是关于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 设置
ASP.NET 网站迁移 HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用