Asp.net 4.0站点失败,因为没有处理程序映射到Classic appPool

时间:2010-05-14 22:14:42

标签: asp.net iis .net-4.0

当我创建一个Asp.net应用程序并将appPool翻转为“ASP.NET v4.0 Classic”时,它失败并出现以下错误:

HTTP错误404.17 - 未找到 请求的内容似乎是脚本,静态文件处理程序不会提供。

经过一些搜索后,似乎处理程序没有正确映射到经典模式,但我找不到在哪里或如何解决这个问题。

我有完整的.Net 4.0安装与VS2010,如果我将appPool翻转到集成,该应用程序工作正常。此外,它是一台Windows 7机器(我在Vista机箱上遇到同样的问题)。提前谢谢。

安迪

4 个答案:

答案 0 :(得分:2)

我首先从.net 4.0目录中调用aspnet_regiis.exe。 您还可以运行以下命令以查看为服务器配置的处理程序列表:

\windows\system32\inetsrv\appcmd.exe list config -section:handlers | findstr v4.0 | findstr Isapi

你应该看到asp.net页面工厂,就像(在64位机器上你应该看到它们两次):

<add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />

<add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />

答案 1 :(得分:1)

对我来说有用的是编辑脚本映射(双击Handler Mappings中的PageHandlerFactory-ISAPI-4.0_64bit),单击Request Restrictions按钮,转到Access选项卡,然后将其从“script”更改为“none”

答案 2 :(得分:1)

通过服务器管理安装net framework 4.5扩展(IIS功能安装)。你会把事情搞定。

答案 3 :(得分:0)

这只是对这个问题的贡献。我并不是说这对你有用,它可能对你有所帮助:

对我而言,这与“IsapiModule”无关,即使我得到的确切错误消息是“HTTP错误500.21 - 内部服务器错误 处理程序“PageHandlerFactory-ISAPI-4.0_32bit”在其模块列表中有一个错误的模块“IsapiModule”。

我的方案是在我的Dot.Net 4.0 Classic应用程序池的应用程序池高级设置中将“启用32位应用程序”设置为“true”后出现错误。

所以一时兴起,我只是将管道模式改为“集成”,现在它对我有用。这是愚蠢的,因为当我把它设置为“集成”时,最初它不起作用,这就是我使用“经典”的原因。

我希望这会有所帮助。