Handlers在IIS7.5集成管道上返回404错误。
问题的原因是将客户网站从旧的IIS6迁移到IIS7安装时发生了404错误。当调用.axd文件时,应用程序发生了404错误。网站设置为.NET 2,权限正确,处理程序看起来也没问题。最后,将应用程序池的"Managed Pipeline Mode"从集成模式(Integrated)改为经典模式(Classic),解决了应用程序的问题。
解决方法:
1. 打开IIS管理器。
2. 在左侧的导航栏中,展开服务器和站点,找到需要修改的站点。
3. 右键点击该站点,并选择“高级设置”。
4. 在高级设置窗口中,找到“应用程序池”一栏。
5. 点击“应用程序池”一栏中的“…”按钮,打开应用程序池列表。
6. 找到当前站点使用的应用程序池,并右键点击该应用程序池。
7. 选择“基本设置”。
8. 在基本设置窗口中,找到“管理管道模式”一栏。
9. 将管理管道模式从“集成”改为“经典”。
10. 点击“确定”保存更改。
11. 重新启动IIS。
通过将应用程序池的管理管道模式从集成模式改为经典模式,可以解决在IIS7.5上集成管道中处理程序返回404错误的问题。
问题出现的原因是使用了错误的配置部分(system.web而不是system.webServer)。解决方法是将配置部分改为system.webServer,并在这两个部分都添加处理程序。
以下是整理后的文章:
我可能离谱了,因为我对IIS的了解和专业知识相去甚远,但我遇到了与你的问题类似的困扰,因为我在集成模式下也遇到了IIS7的问题。我注意到你正在使用httpHandlers部分,它位于system.web中。然而,我认为在集成模式下,你需要使用system.webServer部分:
<system.webServer> <handlers> <add... > </handlers> </system.webServer>
希望有了解的人能纠正我如果我是错的。
谢谢!你的答案帮助我找到了这篇msdn上的文章msdn.microsoft.com/en-us/library/46c5ddfy.aspx上的所有我所需要的信息!
我认为如果你同时使用IIS 6和IIS 7,将处理程序添加到这两个部分是必需的...(这可能是经典模式和集成模式之间的隐含差异?)