"Запрашиваемая вами страница не может быть обработана из-за конфигурации расширения". сообщение об ошибке
Я получаю это сообщение об ошибке при попытке запустить мое приложение. Я не знаю, как это исправить:
Ошибка HTTP 404.3 - не найдена Запрашиваемая вами страница не может быть обработана из-за конфигурации расширения. Если страница представляет собой скрипт, добавьте обработчик. Если файл должен быть загружен, добавьте карту MIME.
Вот скриншот страницы с ошибкой:
Что я могу сделать, чтобы исправить эту ошибку?
20 ответов
Используйте aspnet_regiis.exe, чтобы зарегистрировать версию.NET Framework, которую вы используете.
Это распространенная проблема, которая возникает, когда IIS устанавливается после VS или.NET Framework.
Примечание. Для пользователей Windows 8/10 см. Другой ответ JohnOpincar ниже. А также комментарий / совет от Кевина Брайдона.
В Windows 8/10 вы должны использовать
- Программы и возможности →
- Включить или отключить функции Windows →
- IIS →
- Сервисы World Wide Web →
- Особенности разработки приложений →
- Проверьте соответствующие пункты, такие как включение ASP.NET.
Я исправил это на моей Windows 10:
Перейдите в Панель управления - Программы и компоненты - Включение или отключение функций Windows.
Выберите.NET Framework 4.6 Advanced Services - Службы WCF
Проверьте активацию HTTP.
Готово.
В моем случае мне нужно было добавить MIME-типы для каждого расширения файла, которое я хотел бы использовать в веб-конфигурации:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
<mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
<mimeMap fileExtension=".kml" mimeType="text/xml" />
</staticContent>
...
</system.webServer>
В случае, если это кому-то помогает, я получаю эту ошибку при попытке запустить aspnet_regiis.exe:
Операция не удалась с 0x8007000B
Предпринята попытка загрузить программу с неверным форматом
Как оказалось, сервер работал под управлением 64-разрядной версии 2008 года, и я пытался запустить 32-разрядную версию утилиты. Запуск версии, найденной в \Windows\Microsoft.NET\Framework64\v2.0.50727, исправил проблему.
c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i
Я исправил проблему на сервере Windows 2012, установив ВСЕ функции WCF.
A) Диспетчер серверов> Управление [ссылка вверху слева] > Добавление ролей и компонентов
Б) В Функции> .Net Framework 4.5 Функции> Службы WCF
C) Проверьте (включите) функции. Я проверил все.
D) Установить
У меня просто была такая же ситуация с моим клиентом. У нас есть собственный продукт, который устанавливает веб-сайт. Установщик настраивает все: пул IIS, сайт, web.config и т. Д.
Мы установили другой веб-сайт с помощью нашего установщика. Мы ввели одинаковые параметры, поэтому web.configs на обоих сайтах оказались одинаковыми.
Однако недавно установленный сайт работал нормально, а старый - нет. Затем я открыл 2 окна IIS Manager и начал сравнивать разницу в настройках веб-сайта. И я нашел проблему.
Кто-то удалил все сопоставления обработчиков со старого сайта. Если вы идете в "Отображения обработчиков", вы должны увидеть там aspx, asmx и другие расширения и имена обработчиков. Итак, на старом сайте все эти записи отсутствовали.
Итак, я бы посоветовал сначала проверить "отображения обработчиков" - там должно быть много записей. Создайте новый веб-сайт и сравните, чтобы узнать, сколько их должно быть.
Кто их удалил, человек или другая программа, я понятия не имею. Если кто-то может сказать, существует ли какое-либо приложение для отслеживания, которое сообщит, что пользовательский домен \john изменяет веб-сайт на дату "07.03.2012 12:34", это было бы полезно.
Запустив Windows Server 2008 R2 64bit и.net framework 4.5, запустил эту команду из этого местоположения и добился успеха:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i
выход:
Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation. All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).
Чтобы добавить расширение для обслуживания в IIS, следуйте -
- Откройте диспетчер IIS и перейдите на уровень, которым вы хотите управлять.
- В представлении возможностей дважды щелкните MIME Types.
- На панели действий нажмите кнопку Добавить.
- В диалоговом окне Добавить тип MIME введите расширение имени файла в текстовом поле Расширение имени файла.... Введите тип MIME
- в текстовом поле MIME-тип.
- Нажмите ОК.
Как упомянул @Mahmoodvcs, мне нужно было установить / добавить типы MIME для расширения файла, которое мне нужно было разместить / загрузить напрямую, в данном случае это дамп-файл Heroku (резервная копия базы данных postgres), поэтому для установки общедоступного сервера IIS, где Вы можете загружать эти файлы без необходимости использовать AWS S3 bucket или HTTP-ресурсы, например dropbox, это потрясающий вариант!
<staticContent>
<mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>
За Windows Server 2016
- открыто
Server Manager
форма Manage
->Add Roles and Features
- Далее до
Features
страница - Проверьте
WCF Services
особенность со всеми подфункциями Next
а такжеInstall
У меня тоже была эта ошибка, на Windows Server 2008 IIS 7 у меня не было установленной Visual Studio, так что переустановка / восстановление.NET 4.0 сделали свое дело.
Кстати, я только что узнал этот пост: http://blogs.msdn.com/b/webtopics/archive/2010/03/19/iis-7-5-how-to-enable-iis-configuration-auditing.aspx объясняет, как проверять изменения в IIS. Для тех, кто сталкивается с подобными проблемами, я предлагаю включить аудит и позже посмотреть, почему ваш сайт перестал работать.
Если вы пытаетесь просмотреть файл без расширения, у меня сработало добавление MIME Type
: Расширение имени файла:.
Тип MIME:text/plain
Это может иметь некоторые последствия для MVC, особенно если ваш Static File Handler
выше Extensionless...
обработчики (под IIS
/ Handler Mappings
), но может быть обходным решением, когда вам это нужно только временно, например, активация сертификатов SSL.
В связи с сервером 2016 года я должен добавить:
Запустите эту команду:
aspnet_regiis -lv
из этого каталога:C:\Windows\Microsoft.NET\Framework\v2.0.50727\
Это дает вам лучшее представление о том, что происходитНа Server 2016 установка.net и iis вне последовательности не является проблемой.
Что более вероятно, будет проблемой на Server 2016, так это просто то, что asp.net не установлен на машине.
Я столкнулся с той же ошибкой в Windows Server 2022 Standard , когда развернул приложение службы wcf. Для решения я встроил HTTP-активацию (предложено user1113475 ).
Убедитесь, что пул приложений в IIS (в случае IIS7 или выше) выбран как интегрированный. В этом случае, вероятно, изменение на Classic может решить эту проблему.
Я пытался настроить MediaWiki на моем компьютере с Windows 7 и получил эту ошибку.
Моим решением было "создать глобальное сопоставление обработчика FastCGI для php".
Задавать video
на ваш IIS MIME Type
Это решило мои проблемы.
Ссылка: /questions/40367258/pochemu-oshibka-404-voznikaet-pri-dostupe-k-fajlu-mp4-po-http/40367269#40367269
IIS приложения PHP 7.3 в Windows Server 2012 R2
Для меня это был двухэтапный процесс.
1) Включите службы WCF - с перезапуском сервера
2) Добавьте отображение модуля FASTCGI
1)
Перейдите в Диспетчер серверов> Добавить роли и компоненты. Выберите свой сервер из пула серверов. Перейдите в Функции> Службы WCF. Я выбрал все категории, а затем установил.
2)
Перейдите в IIS > выберите сайт В центральной панели выберите Сопоставления обработчиков На правой панели выберите Добавить сопоставления модулей
В окне редактирования:
Путь запроса: *.php
Модуль: FastCgimodule
Исполняемый файл: я просмотрел php-cgi.exe в моей папке PHP
Имя: PHP7.3
Теперь, когда я об этом думаю. Возможно, существует способ добавить это сопоставление обработчика в веб-конфигурацию, поэтому, если вы переносите свой сайт на другой сервер, вам не нужно добавлять это сопоставление снова и снова.
РЕДАКТИРОВАТЬ: Вот оно. Добавьте это в раздел web-config.
<add name="PHP-FastCGI" verb="*"
path="*.php"
modules="FastCgiModule"
scriptProcessor="c:\php\php-cgi.exe"
resourceType="Either" />