Ошибка 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