«Запрашиваемая вами страница не может быть обработана из-за конфигурации расширения». сообщение об ошибке


272

Я получаю это сообщение об ошибке при попытке запустить мое приложение. Я не знаю, как это исправить:

Ошибка HTTP 404.3 - не найдена Запрашиваемая вами страница не может быть обслужена из-за конфигурации расширения. Если страница представляет собой скрипт, добавьте обработчик. Если файл должен быть загружен, добавьте карту MIME.

Вот скриншот страницы ошибки: альтернативный текст

Что я могу сделать, чтобы исправить эту ошибку?


1
исходный код был бы более полезным, чем страница с ошибкой
gsharp

1
Какую часть исходного кода вам нужно увидеть?

1
После выполнения приведенных выше инструкций, а также, если вы получаете ту же ошибку, перейдите по ссылке ниже и следуйте инструкциям. Нажмите здесь
Радж

Ответы:


170

Используйте aspnet_regiis.exe, чтобы зарегистрировать версию .NET Framework, которую вы используете.

Это распространенная проблема, которая возникает, когда IIS устанавливается после VS или .NET Framework.

Примечание. Для пользователей Windows 8/10 см. Другой ответ JohnOpincar ниже . А также комментарий / совет от Кевина Брайдона.


11
На самом деле я сначала установил Visual Studio, а затем IIS. В настоящее время я запускаю команду «aspnet_regiis.exe -i». Надеюсь, это исправит ошибку.

5
Сработало и у меня, когда я получил эту ошибку при попытке получить доступ к службе WCF .svc.
atconway

Примечание - для пользователей Windows 8 см. Другой ответ от JohnOpincar ниже
KyleK

+1 Для всех, кто обнаружил это с помощью поиска, вам может быть проще выполнить восстановление на установке .NET вместо попытки запустить aspnet_regiis.exe в качестве пути наименьшего сопротивления и решить проблему. Мы часто наблюдаем это на коробках, в которых установлена ​​.NET 4.5.2 (через Центр обновления Windows) до установки роли IIS, это немного расстраивает, потому что эти блоки будут показывать .NET 4 в качестве опции в их пуле приложений, но если вашему приложению требуется .NET 4.5, как у нас, произойдет сбой с вышеприведенным сообщением.
aolszowka

246

В Windows 8/10 вы должны использовать

  • Открыть панель управления →
  • Программы и возможности →
  • Включить или отключить функции Windows →
  • Информационные Интернет-услуги (IIS) →
  • Сервисы World Wide Web →
  • Особенности разработки приложений →
  • Проверьте соответствующие пункты, такие как включение ASP.NET. (т.е. установите соответствующую версию, с которой вы хотите настроить свои сайты)

Ссылка: Проверьте решение этого вопроса для справки


217
Я должен был проверить .NET Framework 4.5 Advanced Services> WCF Services>HTTP Activation
Kevin Brydon

13
выполните эту команду из командной строки администратора: «dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / all» или «dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation45 / all»
Пол Суарт

Как только я привык работать с regiis, Microsoft переходит и снова его меняет. Ну, по крайней мере, это намного проще - подобное изменение для установки WIF. Теперь они должны добавить SQL для включения / выключения функций Windows.
nocarrier

@KevinBrydon - Большое спасибо! Ваш совет был очень полезен для решения проблемы в Windows 2012 R2.
Амил Вадувавара

В Windows server 2012 R2 включение «Активация Http» работало для меня.
Dhanuka777

117

Я исправил это на моей Windows 10:

  1. Перейдите в Панель управления - Программы и компоненты - Включение или отключение функций Windows.

  2. Выберите .NET Framework 4.6 Advanced Services - Службы WCF

  3. Проверьте активацию HTTP.

  4. Готово.


5
У меня работает на Windows 10! Спасибо!
Сергей Малютин

1
У меня на win 8.1 тоже работает
Qerts

Работал на Win10 iis7
noCodeMonkeys

Это работает после обновления до Windows 1709 и переустановки моего IIS
garrettendi

Идеально подходит для меня. Идеальное решение, если вы получаете сообщение «Эта ошибка возникает, когда расширение файла запрошенного URL-адреса относится к типу MIME, который не настроен на сервере»
eranda.del

84

В моем случае мне нужно было добавить типы 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>

2
1+ это решило мою проблему ... я пытался загрузить, .jsonи я продолжал получать ошибку OP, и в конце концов я добавил mimeMapв свой web.config и решил проблему
Ник Кан

Нужно ли добавлять MIME-тип для файла asmx?
Шилпа Сони

@ShilpaSoni asmx файлы - это файлы сервера asp.net (не статический контент). так что вы не можете и вам не нужно скачивать их с клиента.
Mahmoodvcs

1
А вот карта расширений файлов для соответствующего им mimeType, найденная по этому такому вопросу
The Red Pea

21

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

7

У меня была такая же ситуация с моим клиентом. У нас есть собственный продукт, который устанавливает веб-сайт. Установщик настраивает все: пул IIS, сайт, web.config и т. Д.

Мы установили другой веб-сайт с помощью нашего установщика. Мы ввели одинаковые параметры, поэтому web.configs на обоих сайтах оказались одинаковыми.

Однако недавно установленный сайт работал нормально, а старый - нет. Затем я открыл 2 окна IIS Manager и начал сравнивать разницу в настройках веб-сайта. И я нашел проблему.

Кто-то удалил все сопоставления обработчиков со старого сайта. Если вы идете в «Сопоставления обработчиков», вы должны увидеть там aspx, asmx и другие расширения и имена обработчиков. Итак, на старом сайте все эти записи отсутствовали.

Итак, я бы посоветовал сначала проверить «отображения обработчиков» - там должно быть много записей. Создайте новый веб-сайт и сравните, чтобы узнать, сколько их должно быть.

Кто их удалил, человек или другая программа, я понятия не имею. Если кто-то может сказать, существует ли какое-либо приложение для отслеживания, которое сообщит, что пользовательский домен \ john изменяет веб-сайт на дату «07.03.2012 12:34», это было бы полезно.



6

Я исправил проблему на сервере Windows 2012, установив ВСЕ функции WCF.

A) Диспетчер серверов> Управление [ссылка вверху слева]> Добавление ролей и компонентов

B) В Функции> .Net Framework 4.5 Функции> Службы WCF

C) Проверьте (включите) функции. Я проверил все.

D) Установить


2
Я проверил только HTTP-активацию и TCP-активацию, и у меня это сработало. В любом случае, спасибо!
Алексей Миалкин

6

Запустив 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).

3

Как упомянул @Mahmoodvcs, мне нужно было установить / добавить типы MIME для расширения файла, которое мне нужно было разместить / загрузить напрямую, в данном случае это дамп-файл Heroku (резервная копия базы данных postgres), поэтому для установки общедоступного сервера IIS, где Вы можете загрузить эти файлы без необходимости использовать AWS S3 bucket или HTTP-ресурсы, такие как dropbox, это потрясающий вариант!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>


2

Кстати, я только что узнал этот пост: http://blogs.msdn.com/b/webtopics/archive/2010/03/19/iis-7-5-how-to-enable-iis-configuration -auditing.aspx объясняет, как проводить аудит изменений в IIS. Для тех, кто сталкивается с подобными проблемами, я предлагаю включить аудит и позже посмотреть, почему ваш сайт перестал работать.


2

У меня тоже была эта ошибка, на Windows Server 2008 IIS 7 у меня не было установленной Visual Studio, поэтому переустановка / восстановление .NET 4.0 сделали свое дело.


1

Чтобы добавить расширение для обслуживания в IIS, следуйте -

  1. Откройте диспетчер IIS и перейдите на уровень, которым вы хотите управлять.
  2. В представлении возможностей дважды щелкните MIME Types.
  3. На панели действий нажмите кнопку Добавить.
  4. В диалоговом окне Добавить тип MIME введите расширение имени файла в текстовом поле Расширение имени файла. ... Введите тип MIME
  5. в текстовом поле MIME-тип.
  6. Нажмите ОК.

1
Я протестировал это решение в случае .ts (Type Script Files), который вы должны объявить в полях Typescript типа MIME (.ts). Я использую text / x.typescript в качестве mime type
freedeveloper


0

Убедитесь, что пул приложений в IIS (в случае IIS7 или выше) выбран как интегрированный. В этом случае, вероятно, изменение на Classic может решить эту проблему.


0

В связи с Server 2016 я должен добавить:

  1. Запустите эту команду: aspnet_regiis -lvиз этого каталога: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ это дает вам лучшее представление о том, что происходит

  2. На Server 2016 установка .net и iis вне последовательности не является проблемой.

  3. Что более вероятно, будет проблемой на Server 2016, так это просто то, что asp.net не установлен на машине.


0

Для Windows Server 2016

  1. Открытая Server Managerформа
  2. Manage -> Add Roles and Features
  3. Далее до Featuresстраницы
  4. Проверьте WCF Servicesфункцию со всеми подфункциями
  5. Next и Install

0

Приложение IIS PHP 7.3 на Windows Server 2012 R2

Это был двухступенчатый процесс для меня.

1) Включить службы WCF - с перезагрузкой сервера

2) Добавить сопоставление модуля FASTCGI

1)

Перейдите в Диспетчер серверов> Добавить роли и функции. Выберите свой сервер из пула серверов. Выберите Функции> Службы WCF. Я выбрал все категории и установил их.

2)

Перейдите в IIS> выбрал сайт. В центральной панели выберите Сопоставления обработчиков. В правой части выберите Добавить сопоставления модулей.

В окне редактирования:

Путь запроса: * .php

Модуль: FastCgimodule

Исполняемый файл: я перешел к php-cgi.exe внутри моей папки PHP

Имя: PHP7.3

Теперь, когда я думаю об этом. Может быть способ добавить это сопоставление обработчика в веб-конфигурацию, так что если вы переносите свой сайт на другой сервер, вам не нужно добавлять это сопоставление снова и снова.

РЕДАКТИРОВАТЬ: Вот оно. Добавьте это в раздел веб-конфигурации.

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />


0

Если вы пытаетесь просмотреть файл без расширений, то у меня получилось добавить MIME Type: расширение имени файла : . MIME-тип :text/plain

Это может иметь некоторые последствия для MVC, особенно если вы находитесь Static File Handlerвыше Extensionless...обработчиков (под IIS/ Handler Mappings), но может быть обходным решением, когда вам нужно только это временно, например, активация SSL-сертификатов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.