Ошибка: приложение VS 2017 ASP.NET Core опубликовано в IIS [тот же компьютер]

Первое создание нового проекта в VS 2017 с шаблоном ASP.NET Core (и индивидуальной аутентификацией) не имеет файла web.config; но добавляется при публикации приложения в C: \ inetpub \ wwwroot (при новой установке Window server 2016 и VS на том же компьютере).

При публикации не удается открыть веб-страницу, отображающую страницу «500 - Внутренняя ошибка сервера». При входе в диспетчер IIS после щелчка по mySite на левой панели при попытке щелкнуть что-либо на средней панели размещенного веб-сайта не удается открыть с этой ошибкой:

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

Как вы также можете видеть, это не дает никакой информации о фактической ошибке. Не знаете, почему он ищет \\?\C: файл web.config? Я считаю, что если мне удастся решить эту проблему, веб-страница должна загрузиться; поскольку он загружается в разработке. Как уже говорилось, эта проблема возникает только при развертывании базового шаблона ASP.NET Core; но он также делает то же самое с моим предыдущим веб-сайтом, созданным с помощью VS 2015 Community, перенесенного на VS 2017 (с обязательным обновлением для него VS)

Файл web.config, который находится только в папке опубликованного приложения, а не в папках проекта разработки:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\Laier-IT.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

person Edward    schedule 11.06.2017    source источник


Ответы (1)


Этот тип проблемы типичен для конфигурации IIS, которая не настроена для .Net Core.

Для размещения приложений .Net Core в IIS необходимо установить пакет .NET Core Windows Server Hosting.

Подробные инструкции по установке пакета хостинга Windows Server .Net Core см. В Документация Microsoft по установке .Net Core Windows Server Hosting.

Это document также предоставляет обширную информацию о развертывании .Net Core на IIS и различных других HTTP-серверах.

Кроме того, вам необходимо установить для .Net CLR отсутствие управляемого кода в настройках пула приложений: Для среды CLR должно быть установлено значение Без управляемого кода

person Alan Wolman    schedule 11.06.2017
comment
Типичный? Поскольку у меня никогда не было этой проблемы с использованием VS 2015 Community. Хорошо, я попытался загрузить пакет .NET Core Windows Server Hosting и получил ошибку установки для Microsoft .NET Core 1.0.4 и 1.1.1 Windows Server Hosting. Другая версия этого продукта уже установлена. - person Edward; 12.06.2017
comment
Связанная документация предоставляет полезную информацию по устранению неполадок. Можете ли вы показать нам содержимое вашего файла web.config? Можете ли вы запустить приложение из командной строки, например dotnet myapplication.dll? - person Alan Wolman; 12.06.2017
comment
Вы изменили версию CLR пула приложений на Без управляемого кода? - person Alan Wolman; 12.06.2017
comment
Обновляю вопрос скриптом web.config. Я также попробовал команду dotnet cmd и получил "Теперь слушаем": localhost: 5000 Приложение запущено. Нажмите Ctrl + C, чтобы выключить. Затем я ввел localhost: 5000 в свой браузер. Это нормально работает, но, конечно, это локально и не вызывается через службу IIS из-за пределов сети. - person Edward; 12.06.2017
comment
web.config выглядит хорошо ... и это поведение, которое мы ожидаем от вашего приложения, запущенного из CLR ... что еще раз подтверждает, что проблема связана с интеграцией IIS. Вы изменили версию CLR пула приложений на Без управляемого кода? - person Alan Wolman; 12.06.2017
comment
Хорошо, я изменил версию CLR пула приложений с v4.0 на Без управляемого кода, и это сработало. Пожалуйста, обновите свой ответ этим и, возможно, объясните, почему это решит проблему, и я проголосую за и выберу ваш ответ. - person Edward; 12.06.2017
comment
Не могли бы вы объяснить, что это значит и почему это устранило мою проблему? - person Edward; 12.06.2017
comment
Версия .Net CLR используется для создания экземпляра правильной среды выполнения .Net - однако при запуске веб-сайта .Net Core мы просто используем IIS для прокси-сервера на веб-сервер Kestrel через исполняемый файл dotnet. Я не уверен, почему оставление этого набора для версии .Net CLR приводит к ошибке. - person Alan Wolman; 12.06.2017