Вопрос

У меня есть простая сборка WebAPI с помощью Visual Studio 2013.Он хорошо работает, когда я запускаю его из VS13, но когда я копирую проект в локальный IIS, он выдает мне следующую ошибку.

Ошибка HTTP 500.19 - Внутренняя ошибка сервера Запрошенная страница недоступна поскольку связанные данные конфигурации для страницы недопустимы.

Подробная информация об ошибке:

Модуль Веб-ядро IIS

Уведомление Начальный запрос

Обработчик Еще не определено

Код ошибки 0x80070021

Ошибка конфигурации Этот раздел конфигурации не может быть использован по этому пути.Это происходит, когда раздел заблокирован на родительском уровне.Блокировка выполняется либо по умолчанию (overrideModeDefault="Запретить"), либо устанавливается явно с помощью тега location с overrideMode="Запретить" или устаревшего AllowOverride="false".

Конфигурационный файл \?\C:\inetpub\wwwroot\APITeslin\web.config

Источник конфигурации:

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
Это было полезно?

Решение

Получил точно такую же ошибку и пришел к этому вопросу.Как упоминал @SpaceBison в комментариях, этот ответ описывает решение - https://stackoverflow.com/a/12867753/404099.Я заметил это слишком поздно, и он пропустил несколько шагов.Это то, что сработало у меня:

Windows Server 2012, IIS 8.5.Должно работать и для других версий.

  • Перейдите в диспетчер серверов, нажмите добавить роли и компоненты
  • В разделе роли выберите:Веб-сервер
    • В разделе Безопасность выберите все (я исключил дайджест, ограничения IP и авторизацию URL, поскольку мы их не используем).
    • В разделе Разработка приложения выберите .Расширяемость сети 4.5, ASP.NET 4.5 и обе записи ISAPI
  • В разделе "Функции" выберите:NET 3.5, .NET 4.5, ASP.NET 4.5
  • В разделе веб-сервер выберите:Веб-сервер (все), Средства управления (консоль управления IIS и служба управления), Проверка подлинности Windows - если вы используете что-либо из этого

Другие советы

Я получил эту ошибку при попытке разместить службу WCF в пустом приложении ASP.NET.Все решение использовало платформу .NET 4.5 на IIS 8.5, работающем под управлением Windows 8.1.Задача заключалась в том, чтобы

  1. Откройте раздел "Включение или выключение функций Windows".
  2. Перейдите в раздел WCF в разделе ASP.NET 4.5 расширенные сервисы
  3. Проверьте HTTP-активацию.
  4. Вам будет предложено перезагрузить систему.

    Screen Shot

Это должно исправить HTTP 500.19!

РЕДАКТИРОВАТЬ 11-ФЕВРАЛЬ-2016 Только что возникла проблема в Windows 10 Pro, IIS 10, На этот раз это был HTTP 404.0.Исправление остается тем же, включите "HTTP Активацию" в разделе Функции Windows -> .NET Framework 4.6 Расширенные службы -> Службы WCF -> HTTP Активация

Я тоже столкнулся с той же проблемой, но после многочасового мозгового штурма с IIS и Google.Я нашел решение.Эта ошибка вызвана тем, что некоторые настройки отключены в IIS applicationHost.config.

Ниже приведены шаги к решению:

  1. Перейти к C:\Windows\System32\inetsrv\config\applicationHost.config и открыть в блокноте
  2. Измените следующее ключевое значение, присутствующее в

    • <section name="handlers" overrideModeDefault="Deny" /> измените это значение с "Запретить" на "Разрешить".

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> измените это значение с "Запретить" на "Разрешить".

У меня это сработало.

Если вы впервые запускаете IIS на этом компьютере, вам следует попробовать запустить ASP.NET Средство регистрации IIS (aspnet_regiis.exe).

Вот как это сделать:Если вы используете .net Framework версии 4, откройте командную строку от имени администратора и измените каталог на базовую папку .net Framework, используя:

CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

или, если вы используете 64-разрядный компьютер, используйте:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

после успешного перехода в соответствующий каталог запустите средство регистрации IIS ASP.NET с помощью:

aspnet_regiis -i

Если вы используете другую версию .NET Framework, просто замените v4.0.30319 с соответствующим именем папки.

Надеюсь, это поможет.

Я решил это, выполнив следующее:

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters

enter image description here

В Windows 8.1, IIS 8.5 решением для меня было зарегистрировать 4.5 с панели управления:

Программы и компоненты > Включение или выключение функций Windows > Информационные службы > Службы Всемирной паутины > Функции разработки приложений > Выберите ASP.NET 4.5

Нажмите кнопку ОК.

Как указано в идентификаторе ошибки - "Это происходит, когда раздел заблокирован на родительском уровне".Чтобы разблокировать раздел, вы можете использовать appcmd.exe и выполните следующую команду:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost

Для получения дополнительной информации о блокировке разделов и о том, что такое контекст родительской конфигурации, обратитесь к Документация IIS.

В моем случае существовали правила для IIS Переписать URL-адрес модуль, но у меня этот модуль не был установлен.Вам следует проверить свой web.config, если какие-либо модули включены, но не установлены.

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

Мы выбрали информационные сервисы Интернета, сервисы всемирной паутины, функции разработки приложений и проверили набор функций, связанных с нашей средой разработки.Например:ASP.NET 4.6.Расширяемость .NET 4.6 и т.д.

Это работает!

Попробуйте разблокировать соответствующие параметры конфигурации IIS (7.5) на уровне сервера следующим образом:

  1. Открыть Диспетчер IIS
  2. Выберите сервер на панели "Подключения"
  3. Открыть Редактор конфигурации на главной панели
  4. В раскрывающемся списке Разделы выберите раздел для разблокировки, например system.Веб-сервер > Путь по умолчанию
  5. Щелчок Атрибут Разблокировки на правой панели
  6. Повторите для любых других настроек, которые вам необходимо разблокировать
  7. Перезапустить IIS (необязательно) - Выберите сервер на панели "Подключения", нажмите "Перезапустить" на панели "Действия".

Ваш web.config описывает, что вы используете проверка подлинности форм - убедитесь, что вы включили проверку подлинности форм и отключить анонимная аутентификация в IIS в меню Аутентификация для веб-сайта, запущенного в IIS.

Если это Windows 10, то откройте powershell от имени администратора и выполните следующую команду:

dism /online /enable-feature /all /featurename:IIS-ASPNET45

Пожалуйста <staticContent /> строку и удалил ее из web.config.

Что ж, мы используем Amazon Web Services и поэтому хотим использовать скрипты и программы для решения этой проблемы.Итак, я был в поисках инструмента командной строки.Итак, сначала я попробовал трюк с бегом

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

но поскольку я использую облачный Windows Server 2012, он пожаловался

This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.

и я погуглил и нашел официальный Страница поддержки Майкрософт KB2736284.Итак, есть инструмент командной строки dism.exe.Итак, я попробовал следующее

dism /online /enable-feature /featurename:IIS-ASPNET45

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

dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter 
dism /online /enable-feature /featurename:IIS-ISAPIExtensions 
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45 

И вот теперь я могу перейти на свой сайт WebAPI и посмотреть информацию об API.Это должно помочь нескольким людям.[Тем не менее, я еще не полностью вышел из положения и не могу зайти на веб-сайт нестандартно.Все еще работаю над этим.]

Кроме того, я выполнил несколько более ранних шагов, следуя ответам других людей.Я могу подтвердить, что необходимо изменить следующее делегирование функций (хотя я хотел бы найти инструмент командной строки для них).

In Feature delegation

Change 
'Handler Mappings' from Read Only to Read/Write

Change 
'Modules' from Read Only to Read/Write

Change 
'SSL Settings' from Read Only to Read/Write

Для приложений .NET Core на Windows Server (в моем случае 2012 с IIS 10) это сработало после установки.NET Core Windows Server Hosting bundle (Ссылка).

Проверьте, установил ли сервер IIS функцию перезаписи URL-адресов.
Если он не установлен, убедитесь, что в вашем файле web.config нет конфигурации, связанной с перезаписью URL

<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
  <rules>
    <rule name="Fail bad requests">
      <match url=".*"/> ...

Некоторое время мы копировали конфигурацию с устаревшего сервера и сразу же выполняли развертывание на совершенно новом сервере, затем мы можем столкнуться с такой проблемой 500.

Это работает и экономит мое время.Попробуй это Ошибка HTTP 500.19 – Внутренняя ошибка сервера – 0x80070021 (IIS 8.5)

Решение, которое сработало для меня, состояло в том, чтобы удалить мой текущий Web.config и добавить новый.Это решило проблему для меня

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top