HTTP错误500.22 – 内部服务器错误(已检测到ASP.NET设置不适用于集成pipe理pipe道模式。)

我在查看应用程序时收到此错误。

HTTP错误500.22 – 内部服务器错误(已检测到ASP.NET设置不适用于集成pipe理pipe道模式。)

.net框架2.0,3.5和4安装,我正在使用SQL 2008.谁能告诉我什么解决scheme是这个错误?

此问题是由您的网站设置为“应用程序池”设置中的pipe道模式造成的。

  • 简单的方法将应用程序池模式更改为启用了经典pipe道的模式。
  • 正确的方式您的web.config / web应用程序将需要改变,以支持集成pipe道。 通常这和删除你的web.config部分一样简单。
  • 简单的方法(不好的做法)添加以下到您的web.config。 请参阅http://www.iis.net/ConfigReference/system.webServer/validation

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

如果可能的话,你最好的select是改变你的应用程序来支持集成的pipe道。 IIS6和IIS7.x之间会有一些更改会导致此错误。 您可以在http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/上find有关这些更改的详细信息。;

如果您无法做到这一点,则需要根据您在Web服务器上的可用性来更改可能更难以完成的应用程序池。

  • 转到Web服务器
  • 打开IISpipe理器
  • 导航到您的网站
  • 点击右侧操作窗格中的高级设置
  • 在“应用程序池”下,将其更改为启用了经典版的应用程序池。

有关更改应用程序池的详细信息,请参阅http://technet.microsoft.com/zh-CN/library/cc731755(WS.10).aspx

如果您需要使用Classicpipe道创build应用程序池,请查看http://technet.microsoft.com/zh-CN/library/cc731784(WS.10).aspx

如果您无法访问服务器进行此更改,则需要通过托pipe服务器执行此操作,并与他们联系以获取帮助。

随意问的问题。

在您的web.config中,确保这些键存在:

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

我改变了我的web.config文件以两种forms使用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> 

使用VS2013 .net 4.5

我有同样的问题。

错误消息页面上的“最有可能的原因”部分提供了最多的帮助。 为了我。 它说:“这个应用程序定义在system.web / httpModules部分的configuration。” 然后在“你可以尝试的东西”部分,它说:“将configuration迁移到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> 

这对我工作:

  1. 删除最初创build的网站。
  2. 在IIS中重新创build该网站
  3. 清洁解决scheme
  4. 构build解决scheme

当我最初创build网站时,似乎有东西向南。 我讨厌类似“重新启动你的机器,然后重新安装Windows”的解决scheme,而不知道是什么导致了错误。 但是,这对我有用。 快速简单。 希望它可以帮助别人。

我有一个与IIS 7,Win 7企业包类似的问题。 我在@Kirk中改变了应用程序池的答案:

将“应用程序池”模式更改为启用了“经典pipe道”的模式。“但对我来说没有运气。

再加一步为我工作。 我已经将我的网站的.NET Frameworkis v2.0更改为.NET Frameworkis v4.0.ApplicationPool

Personnaly在将IIS6网站迁移到IIS7时遇到此问题,为了解决此问题,我使用了以下命令行:
%windir%\System32\inetsrv\appcmd migrate config "MyWebSite\"
确保备份你的web.config

将应用程序池设置为经典的.NET appool,并确保经典的.Net应用程序在Classicpipe理的piple行上工作。