IIS Развернутый ASP.NET 5 Сайт BETA 8 для IIS дает ошибку HTTP 500.19 - Внутренняя ошибка сервера

Я создал новое веб-приложение ASP.NET5 Beta 8.

Я публикую его в своей локальной файловой системе и копирую эти файлы на свой сервер, который является Windows Server 2012 R2

В IIS 8.5 на сервере я создаю приложение, которое использует пул приложений, который использует Process Model → Identity как LocalSystem.

и я указываю путь к подпапке wwwroot скопированного опубликованного приложения

Мой web.config

<configuration>
  <system.webServer>
    <handlers>
      <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform>
  </system.webServer>
</configuration>

Запуск URL-адреса на сервере напрямую или щелчок по просмотру в IIS

http://localhost/WebApplication1

Я получаю следующую ошибку

Ошибка HTTP 500.19 - Внутренняя ошибка сервера

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

введите описание изображения здесь

Я использую по умолчанию web.config из шаблона веб-приложения Visual Studio 2015 ASP.NET 5 Beta8, поэтому я мог только подумать, что это возможно .net-версия.

Я использовал метод

Я скомпилировал его как Win CLR при публикации

Когда я перехожу в свою папку-помощник в каталоге развертывания, я могу запустить веб-сервер web.cmd, а затем получить доступ к моему сайту через созданный порт.

http://localhost:5000/

и этот сайт работает правильно.

Если я рассматриваю роли ролей на IIS-сервере, установленные компоненты

Установлен ASP.NET 4.5.

Пул приложений правильный.

Веб-сайты ASP.NET 4 корректно работают в IIS с использованием того же пула приложений

Мои вопросы 1. Почему IIS говорит, что файл web.config недействителен? 2. Как получить сайт ASP.NET 5 Beta 8 для работы в IIS?

Ответ 2

Модель хостинга из бета-версии ASP.NET 5 изменилась и теперь зависит от IIS HttpPlatformHandler.

Вы заметите, что ваш web.config находится в папке wwwroot, или ваше приложение содержит ссылки на него.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
  </system.webServer>

Вышеуказанный% DNX_PATH% переводится в "..\approot\web.cmd"

Заметки о выпуске ASP.NET BETA 8

Хостинг приложений ASP.NET 5 в IIS теперь будет достигнут с помощью IIS HttpPlatformHandler, настроенного для пересылки на сервер ASP.NET 5 Kestrel. HttpPlatformHandler - это собственный IIS-модуль, который должен быть установлен администратором на сервере с IIS (установщики: x86, x64). Он также уже включен в обновление бета-версии бета-версии для локальной разработки в IIS Express. Этот собственный модуль IIS управляет запуском внешнего процесса хоста приложения (в данном случае dnx.exe) и маршрутизации запросов от IIS к размещенному процессу.

Вы можете установить HttpPlatformHandler с помощью установщика Microsoft Web Platform или отдельных установщиков x86/x64 на ссылки для загрузки с сайта Microsoft IIS: ссылка.

Обратите внимание: HttpPlatformHandler поддерживает только IIS 8+. Таким образом, это означает, что для старых операционных систем, таких как Windows Server 2008 R2, которые поставляются с IIS 7.5, вы не сможете использовать IIS для размещения веб-сайтов ASP.NET 5, поскольку эта версия не поддерживает HttpPlatformHandler.

Ответ 3

В моем проекте используется: ASP.NET Core Web Application (.NET Framework)
Это связано с тем, что я планирую использовать IIS и Windows, поэтому не нужно переходить на Core.

Я нашел эту ссылку: Установить пакет хостинга Windows Server Core.NET
Там вы найдете эту ссылку: .NET Core Windows Server Hosting
Вторая ссылка выше автоматически попытается загрузить и установить пакет "Microsoft.NET Core 1.0.0 Windows Server Hosting".
Мне нравится первая ссылка, потому что она действительно объясняет, почему она вам нужна.

Как только я установил на свой сервер, мой веб-сайт, наконец, начал работать!
Нет больше HTTP-ошибок 500.19:)
Я оставил свой app-pool как .net 4 (я сделал не, чтобы установить его в "No Managed Code" ), как говорят инструкции. Я не пробовал, но я понял, что решил использовать .NET Framework, что мне все равно понадобится.