我在web.config中注册了一个IHttpHandler,如下所示:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<!-- These are the HTTP handler registrations for IIS7+ in Integrated Pipeline mode; that is the current recommended mode for all deployments. -->
<handlers>
<add name="LaunchHandler" verb="GET,POST" path="launch.axd" preCondition="integratedMode" type="Foo.LaunchRequestHandler, Foo" />
...
</handlers>
</system.webServer>
如果我直接导航到/launch.axd,则此方法很好,但是我希望此处理程序针对根路径运行。
我最初的方法是创建一个default.aspx页面,该页面重定向到launch.axd,这确实可行,但是显然需要额外的往返浏览器。
作为使用default.aspx页面的替代方法,我尝试将launch.axd添加为默认文档,如下所示:
<defaultDocument>
<files>
<add value="launch.axd"/>
...
</files>
</defaultDocument>
但是,这不起作用。导航到根路径将返回以下消息:
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
Most likely causes:
A default document is not configured for the requested URL, and directory browsing is not enabled on the server.
即该请求正在由DirectoryListingModule处理。
有什么想法吗?可以将没有文件(aspx,ashx)支持的处理程序注册为默认文档吗?