1

我使用 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 文件。

4

1 回答 1

0

While I had an entry in the web.config for the handler to handle directories, I tried moving it up in the list. This worked. Why it stopped working is a mystery as the web.config hasn't changed for a very long time. This is what the entries now look like:

    <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" />
于 2013-04-17T10:48:54.763 回答