Настройка IIS 10 и публикация веб-приложения .net core 2.1 в IIS

Я довольно новичок в базовой структуре .net, и у меня нет большого опыта в настройке IIS 10, и у меня возникают проблемы с ее запуском. На стороне сервера я использую Windows Server 2016. Я установил IIS 10 со службами управления (см. изображение ниже) и функциями .net framework 4.6 (см. изображение ниже).

Службы управления

функции .net framework 4.6

После установки я скачал и установил пакет Web Deploy из Web Deploy 3.6. (Ранее я устанавливал установщик веб-платформы, а затем устанавливал оттуда веб-развертывание).

После перезагрузки системы я убедился, что службы работают правильно (см. изображение ниже).

Услуги

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

Сайт IIS

Сайт указывает на пул приложений по умолчанию, так как я не создавал новый. Я изменил пул приложений на следующие настройки:

Пул приложений

Я также изменил его идентификатор на NetworkService, ранее я пытался установить его на LocalSystem (см. изображение ниже).

Идентификатор пула приложений

Я также убедился, что пользователи IUSR и IIS_IUSRS имеют разрешения на чтение, выполнение и запись в каталоге и подкаталогах веб-сайта (см. изображения ниже).

ИУСР

IIS_IUSRS

Когда все это будет сделано, я установлю пакет хостинга .net core, загруженный с Комплект хостинга .Net Core.

И, наконец, в Visual Studio мой проект представляет собой проект страницы бритвы .net core 2.1. При публикации моего проекта я создал профиль для его публикации со следующими настройками:

Опубликовать 01

Мое соединение было успешно проверено, поэтому я нажал Далее и настроил следующий шаг со следующими настройками:

Опубликовать 02

Я сохраняю профиль, затем публикую его, и он отлично работает. Если я проверю сервер, все файлы будут опубликованы и кажутся правильными. Однако, если я попытаюсь перейти на страницу http://myserver/BlankLabel/, я получу ошибка 404 (см. изображение ниже). Теперь, если я попытаюсь перейти на веб-сайт по умолчанию (http://myserver), который загружает только отлично.

Ошибка

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

Ссылки

Host ASP .NET Core в Windows с IIS

Публикация и развертывание приложения Razor Pages в IIS в Windows

Развертывание приложений .NET Core с помощью Visual Studio

Обновление №1

Я попытался создать новый сайт в разделе «Веб-сайты по умолчанию» и просто добавить простую страницу index.htm, чтобы посмотреть, загрузится ли она. Как только я увидел, что это работает, я опубликовал свое приложение на этом новом сайте (для этого создал временный второй профиль) и попытался перезагрузить страницу. Результатом этого стало то, что это привело к той же исходной ошибке (мой файл index.htm все еще оставался в папке вместе с опубликованными файлами). Затем я удалил опубликованные файлы и перезагрузился, и снова он заработал с файлом index.htm... Очевидно, что-то происходит с проектом .net core 2.1, и IIS это не нравится...

Обновление №2

Просто решил добавить, что AspNetCoreModule загружается и также устанавливается в качестве запуска (см. изображения ниже). Так что я думаю, это всего лишь секунды моего предыдущего обновления ...

AspNetCoreModule

Сопоставление обработчика

Обновление №3

Просто добавьте файл web.config в соответствии с запросом (я также заметил, что журналы отключены, я установлю для них значение true и посмотрю, даст ли это мне дополнительную информацию):

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

person Lord-Link    schedule 15.11.2018    source источник
comment
Можете ли вы поделиться содержимым опубликованного файла web.config? Кроме того, убедитесь, что приложение .NET Core нормально работает в локальной среде разработки?   -  person Mohsin Mehmood    schedule 16.11.2018
comment
@MohsinMehmood Я только что обновил вопрос с помощью файла web.config. Я заметил, что ведение журнала отключено, поэтому я попытаюсь установить для него значение true и посмотреть, есть ли какие-либо журналы, созданные в папке журналов. Приложение .Net, работающее локально из Visual Studio, работает.   -  person Lord-Link    schedule 16.11.2018
comment
@MohsinMehmood После обновления web.config и установки для журналов значения true я смог получить реальную ошибку, которую я могу, по крайней мере, исправить (просто к сведению, это была ошибка соединения SQL) ... Я думаю, что это решает мою первоначальную проблему не зная, что еще делать, и думая, что проблема связана с плохой конфигурацией IIS. Мне просто не хватало переключателя, чтобы журналы начали работать, потому что я создал папку журналов, но на самом деле ничего не регистрировалось. Если вы хотите просто указать ответ, чтобы установить для флага ведения журнала в web.config значение true, я отмечу ваш ответ как правильный. Спасибо!   -  person Lord-Link    schedule 16.11.2018


Ответы (1)


Я предлагаю проверить опубликованный файл ASP.NET Core web.config и включить ведение журнала, установив stdoutLogEnabled=true.

person Mohsin Mehmood    schedule 16.11.2018