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

时间:2011-09-10 08:22:23

标签: asp.net sql-server-2008 iis .net-3.5 windows-7

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

  

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

.Net framework 2.0,3.5和4已安装,我正在使用SQL 2008.谁能告诉我这个错误的解决方案是什么?

8 个答案:

答案 0 :(得分:104)

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

<强>短

  • 简单方法将应用程序池模式更改为启用了经典管道的模式。
  • 正确的方式您的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

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

随意提问。

答案 1 :(得分:19)

在您的web.config中,确保存在以下密钥:

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

答案 2 :(得分:9)

我更改了我的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>

答案 3 :(得分:6)

使用VS2013 .net 4.5

我有同样的问题。

&#34;最可能的原因&#34;错误消息页面上的部分提供了最多的帮助。为了我。它说&#34;这个应用程序定义了system.web / httpModules部分中的配置。&#34;然后在&#34;你可以尝试的东西&#34;它说&#34;将配置迁移到system.webServer / modules部分。&#34;

<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>

答案 4 :(得分:1)

这对我有用:

  1. 删除最初创建的网站。
  2. 在IIS中重新创建网站
  3. 清洁解决方案
  4. 构建解决方案
  5. 当我最初创建网站时,似乎有些东西向南走了。我讨厌类似于&#34的解决方案;重新启动你的机器,然后重新安装Windows&#34;不知道是什么原因导致错误。但是,这对我有用。快速而简单。希望它可以帮助别人。

答案 5 :(得分:0)

我在IIS 7 Win 7企业版上遇到了类似的问题。我在@Kirk回答中更改了应用程序池:

  

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

再为我添加一个步骤。 我已在.NET Frameworkis v2.0

中将我的网站.NET Frameworkis v4.0.更改为ApplicationPool

答案 6 :(得分:0)

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

答案 7 :(得分:-1)

将应用程序池设置为经典的.NET应用程序,并确保Classic .Net apppool在Classic托管行上运行。