Ошибка HTTP 404.7 - не найдена Модуль фильтрации запросов настроен на запрет расширения файла

Я пытаюсь настроить веб-страницу по умолчанию для веб-сайта IIS 7.5.

Фильтрация запросов включена. Однако.aspx-страницы разрешены, я установил default.aspx как страницу по умолчанию для веб-сайта.

Если я перехожу к localhost/default.aspx, я получаю веб-страницу, как и ожидалось.

Если я перехожу к localhost / я получаю

Ошибка HTTP 404.7 - Не найдено Модуль фильтрации запросов настроен на запрет расширения файла.

Есть идеи?

5 ответов

Решение

Похоже, что фильтрация запросов фактически фильтрует пустое имя файла. Поэтому вы должны добавить это в блок фильтрации запросов в файле web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <fileExtensions allowUnlisted="true">
          <remove fileExtension="." />
          <add fileExtension="." allowed="true" />
        </fileExtensions>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

Теперь это очевидно, но на самом деле я думаю, что это огромная ошибка.


Дополнительные сведения: IIS 7 не обслуживает файлы - ошибка 404,7

Вы можете решить, добавив:

<requestFiltering>
    <fileExtensions allowUnlisted="true">
        <remove fileExtension="." />
        <add fileExtension="." allowed="true" />
    </fileExtensions>
</requestFiltering>

в ваш файл Web.Config

Вы можете решить эту проблему, добавив расширение файла в модуль фильтрации запросов IIS.

Обязательно удалите все кнопки PostBackURL="MyPage.aspx" с кнопки на странице. Я предполагаю, что когда postbackurl включен, IIS думает, что получает страницу в виде файла. Он отклоняет тип файла.aspx по умолчанию. Вы можете увидеть это на странице ошибки.

Плохо: создает 404.7 (обратите внимание на PostBackURL)

<asp:FileUpload runat="server"  ID="uplReplaceFile" ToolTip="Update this file" />

 <asp:Button runat="server" PostBackUrl="MyPage.ascx"  ID="bnHiddenFileUploadListener" OnClick="bnHiddenFileUploadListener_OnClick" />

Хорошо: нет ошибок

<asp:FileUpload runat="server"  ID="uplReplaceFile" ToolTip="Update this file" />

 <asp:Button runat="server" ID="bnHiddenFileUploadListener" OnClick="bnHiddenFileUploadListener_OnClick" />

Чтобы разрешить необходимые расширения: На сервере, на котором размещен тестовый сервер, запустите диспетчер IIS.

На левой панели в разделе «Подключения» разверните раскрывающийся список «Сайты» и выберите веб-сайт mytestserver.

На средней домашней панели выберите Фильтрация запросов.

На правой панели в разделе «Действия» выберите «Разрешить расширения имен файлов».

Добавьте расширение, например, .mdb.

Перезапустите диспетчер IIS

Другие вопросы по тегам