Как зарегистрировать IHttpHandler в качестве документа по умолчанию - PullRequest
0 голосов
/ 25 июня 2019

У меня IHttpHandler зарегистрирован в web.config примерно так:

<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), быть зарегистрирован как документ по умолчанию?

...