Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IIS 6 ASP.NET处理程序404错误_Asp.net_Iis 6_Httphandler - Fatal编程技术网

IIS 6 ASP.NET处理程序404错误

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

我有一个在WindowsServer2003(x86)上运行的IIS6,并编写了一个自定义处理程序(不是404错误的处理程序)

当我试图通过在浏览器中打开来访问处理程序时,我得到了错误404(日志文件中的4040)。web应用程序中的其他页面可以工作,例如

处理程序在我的IIS7开发机器上运行良好

web.config的设置如下所示:

<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中获得,谢谢。具体来说,当我转到[默认网站>属性>主目录>配置>映射>添加]时,我应该取消选中“验证文件存在”复选框。