在ASP.Net中使用httphandler的404

在ASP.Net中使用httphandler的404,asp.net,iis-7,httphandler,Asp.net,Iis 7,Httphandler,我使用httphandler将浏览器URL重新映射到网站中的文件。这很好,但是我在访问在新目录下创建的文件时遇到了问题。url如下所示: http://mobile.mysite.com/monitoring/help/help.aspx 然而,404错误中返回的信息显示它无法在以下位置找到文件: D:\Sites\Website\monitoring\help\help.aspx 但该文件实际上位于以下位置: D:\Sites\Website\mobile\monitoring\help\

我使用httphandler将浏览器URL重新映射到网站中的文件。这很好,但是我在访问在新目录下创建的文件时遇到了问题。url如下所示:

http://mobile.mysite.com/monitoring/help/help.aspx
然而,404错误中返回的信息显示它无法在以下位置找到文件:

D:\Sites\Website\monitoring\help\help.aspx
但该文件实际上位于以下位置:

D:\Sites\Website\mobile\monitoring\help\help.aspx
我的http处理程序通常识别“移动”子域。事实上,如果我不使用实际文件而只使用目录,我的处理程序确实会被调用。即使我在代码中设置了断点,VS也永远不会被调用。为什么IIS在不存在的目录下访问help.aspx?为什么没有调用我的httphandler。正如我所提到的,httphandler确实适用于几乎所有其他文件。我可以调用位于其他域下的aspx文件

这是我的处理程序在web.config文件中的外观:

<add name="FileServerHandler-Files" path="*.*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />

在IIS7上运行ASP.NET 4.0


子域“mobile”实际上映射到与主站点相同的IP地址。这与此有关吗?如果是这样,它不会解释为什么处理程序可以访问移动域下的文件夹,但不能访问aspx文件。

当我在web.config中有一个条目让处理程序处理目录时,我尝试在列表中向上移动它。这起作用了。它为什么停止工作是个谜,因为web.config已经很长时间没有改变了。这就是条目现在的样子:

    <add name="FileServerHandler-Dir" path="*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
    <add name="FileServerHandler-Files" path="*.*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />