Почему документ IIS 10 по умолчанию не работает для статического файла?

У меня есть сайт IIS 10, и я могу без проблем скачать документ index.html из корневого каталога. Однако, когда я пытаюсь загрузить тот же файл, используя функцию документа по умолчанию, я получаю код состояния 404.0, и похоже, что IIS не пытался преобразовать запрос из / в /index.html.

Мой файл web.config:

        <defaultDocument enabled="true">
            <files>
                <clear />
                <add value="index.html" />
            </files>
        </defaultDocument>
        <handlers>
            <add name="Static File" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="File" requireAccess="Script" />
            <add name="DefaultDocument" path="*" verb="*" modules="DefaultDocumentModule" resourceType="File" />
        </handlers>

person Tim Williams    schedule 09.03.2021    source источник


Ответы (1)


Ах. Нашел проблему. Мой статический обработчик файлов имел resourceType=File, поэтому он вызывался только для файлов с явным именем. Это должно было быть следующим образом:

        <handlers>
            <add name="Static File" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Script" />
        </handlers>

Это необходимо для работы документа по умолчанию.

Используя графический интерфейс от IISM, это:

  1. Щелкните сайт в дереве подключений слева.
  2. Дважды щелкните Handler Mappings на панели справа от дерева.
  3. Дважды щелкните обработчик статического файла (или добавьте его, если его там нет).
  4. Щелкните Запросить ограничения...
  5. На вкладке Сопоставление щелкните Вызывать обработчик, только если запрос сопоставляется с: затем щелкните Файл или папка и ОК, чтобы вернуться.
person Tim Williams    schedule 09.03.2021
comment
Я так рад, что проблема была решена. Это так ценно, если вы можете принять свое решение в качестве ответа. - person samwu; 10.03.2021