IIS 6 ASP.NET处理程序404错误
我有一个在WindowsServer2003(x86)上运行的IIS6,并编写了一个自定义处理程序(不是404错误的处理程序) 当我试图通过在浏览器中打开来访问处理程序时,我得到了错误404(日志文件中的4040)。web应用程序中的其他页面可以工作,例如 处理程序在我的IIS7开发机器上运行良好 web.config的设置如下所示:IIS 6 ASP.NET处理程序404错误,asp.net,iis-6,httphandler,Asp.net,Iis 6,Httphandler,我有一个在WindowsServer2003(x86)上运行的IIS6,并编写了一个自定义处理程序(不是404错误的处理程序) 当我试图通过在浏览器中打开来访问处理程序时,我得到了错误404(日志文件中的4040)。web应用程序中的其他页面可以工作,例如 处理程序在我的IIS7开发机器上运行良好 web.config的设置如下所示: <httpHandlers> <remove verb="*" path="*.asmx"/>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*.p1s" type="MCS.Priority1.Sync.WebServices.TransferHandler, SyncService" />
</httpHandlers>
我已经为“*.p1s”(默认网站>属性>主目录>配置>映射>添加)设置了应用程序扩展
我还缺什么吗
谢谢,
安迪IIS6和IIS7是根本不同的野兽。IIS7的托管管道意味着每个请求都会命中注册的处理程序,在IIS6中,只有映射到ASPNET_ISAPI.DLL(通常为*.aspx和*.ashx以及其他默认的ASP.NET扩展)的内容才会得到处理 您可以通过使用此项目的开发应用程序池的“经典”管道,使IIS7开发框以这种方式运行 另一个使其按预期方式工作的技巧是将404错误映射到ASP.NET页面,然后您至少可以进入处理程序
老实说,我希望将生产升级到IIS7,因为它的功能要强大得多,这一点都不好笑。如果您正在注册IIS 6的处理程序,请记住它们应该放在 web.config的
部分的
元素,而不是IIS7使用的
部分。您是否在自定义处理程序IIS配置中选中了“验证文件存在”选项
IIS6期望默认情况下存在一个物理文件。如果没有,它根本不会将请求传递给处理程序。您需要禁用此检查,这样它将按预期将请求发送给您的处理程序。在1中获得,谢谢。具体来说,当我转到[默认网站>属性>主目录>配置>映射>添加]时,我应该取消选中“验证文件存在”复选框。