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

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

Management Services

.net framework 4.6 features

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

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

Services

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

IIS Site

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

Application Pool

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

App Pool Identity

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

IUSR

IIS_IUSRS

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

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

Publish 01

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

Publish 02

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

Error

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

Ссылки

Размещение ядра ASP.NET в 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

Handler Mapping

Обновление № 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>

1 Ответ

0 голосов
/ 16 ноября 2018

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

...