我使用 httphandler 将浏览器 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 文件。