HTTP 错误 500.22 - 内部服务器错误 (检测到一个不适用于集成式托管管道模式的 ASP.NET 设置)。
安装了 .Net Framework 2.0、3.5 和 4,并且我正在使用 SQL 2008。有人能告诉我如何解决这个错误吗?
这个问题是由于你的应用程序池设置中的管道模式引起的。
简单方法
简单方式(不良实践) 将以下内容添加到您的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服务器的可用性而更加困难。
有关更改应用程序池的详细信息,请参见http://technet.microsoft.com/en-us/library/cc731755(WS.10).aspx
如果需要创建启用经典管道的应用程序池,请查看http://technet.microsoft.com/en-us/library/cc731784(WS.10).aspx
如果您无法访问服务器以进行此更改,则需要通过托管服务器进行此操作,并联系他们寻求帮助。
请随时提问。
在您的web.config文件中,请确保存在以下键:
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>
我将我的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>
使用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>
这对我有用:
看起来当我最初创建站点时出了一些问题。我讨厌那些类似于“重新启动计算机,然后重新安装Windows”的解决方案,而不知道导致错误的原因。但是,这对我有用。快速简单。希望能帮助其他人。
个人在将IIS6网站迁移到IIS7时遇到了这个问题,为了解决这个问题,我使用了以下命令行:
%windir%\System32\inetsrv\appcmd migrate config "MyWebSite\"
请确保备份您的web.config文件。
我在使用IIS 7,Win 7企业版时遇到了类似的问题。我已按照@Kirk的答案更改了应用程序池:
将Application Pool模式更改为启用Classic Pipeline的模式。但对我来说没有运气。
添加了一步,对我有帮助。我已将我的网站的.NET Framework是v2.0
更改为.NET Framework是v4.0
,在ApplicationPool
中进行了更改。
将应用程序池设置为经典的.NET应用程序池,并确保经典的.NET应用程序池在经典的托管管道上运行。