Введение
Развертывание приложения.NET Core в службах IIS на первый взгляд может показаться сложным, но при соблюдении правильных шагов оно становится простым процессом. В этом руководстве вы узнаете, как развернуть приложение.NET Core в IIS, от предварительных требований до устранения распространенных проблем.
Предварительные условия
Прежде чем приступить к работе, убедитесь, что у вас есть следующее:
- Пакет среды выполнения и хостинга.NET Core — устанавливается на сервер, на котором работает IIS. Этот пакет позволяет IIS размещать приложения.NET Core.
- IIS настроен на Windows Server. Убедитесь, что IIS установлен и работает. Вы можете установить его через диспетчер Windows Server или PowerShell.
- Доступ администратора: вам понадобится доступ администратора к серверу для установки пакета хостинга и настройки IIS.
Шаг 1. Установите пакет хостинга.NET Core.
Посетите официальную страницу загрузки.NET.
Выберите нужную версию и загрузите пакет хостинга.NET Core.
Запустите установщик на своем сервере. Будут установлены среда выполнения.NET Core, библиотека.NET Core и модуль ASP.NET Core. Модуль ASP.NET Core — это компонент, необходимый для размещения приложений.NET Core в IIS.
Перезапустите IIS, чтобы загрузить вновь установленные модули. Вы можете сделать это, запустив iisreset в командной строке.
Шаг 2. Опубликуйте приложение.NET Core.
Использование Visual Studio
Откройте свое решение в Visual Studio.
Щелкните проект правой кнопкой мыши в обозревателе решений и выберите «Опубликовать».
Выберите «Папка» в качестве места назначения публикации и укажите папку для публикации файлов приложения.
Нажмите «Опубликовать», Visual Studio скомпилирует ваше приложение и скопирует необходимые файлы в указанную папку.
Использование командной строки
Чтобы опубликовать приложение.NET Core, перейдите в каталог проекта в командной строке. Затем выполните следующую команду:
dotnet publish -c Release
Эта команда компилирует приложение в режиме выпуска и отправляет выходные данные в каталог «bin/Release/netcoreapp{version}/publish».
Шаг 3. Создайте пул приложений IIS
Использование диспетчера IIS
Откройте диспетчер IIS.
На панели «Подключения» щелкните правой кнопкой мыши «Пулы приложений» и выберите «Добавить пул приложений».
Назовите пул приложений и задайте для версии.NET CLR значение «Нет управляемого кода», поскольку.NET Core не зависит от среды выполнения CLR. Режим управляемого конвейера должен быть установлен на «Интегрированный».
Нажмите «ОК», чтобы создать пул приложений.
Использование командной строки
Откройте командную строку от имени администратора.
Выполните следующие команды:
cd %windir%\system32\inetsrv
appcmd add apppool /name:"DotNetCorePool" /managedRuntimeVersion:"" /managedPipelineMode:"Integrated"
Замените «DotNetCorePool» именем, которое вы хотите дать новому пулу приложений.
Шаг 4. Разверните приложение в IIS.
Использование диспетчера IIS
В диспетчере IIS щелкните правой кнопкой мыши «Сайты» на панели «Подключения» и выберите «Добавить веб-сайт».
Введите имя своего веб-сайта и выберите пул приложений, который вы создали ранее.
В качестве физического пути найдите и выберите папку, в которой вы опубликовали приложение.NET Core.
Укажите информацию о привязке (например, IP-адрес, порт и имя хоста).
Нажмите «ОК», чтобы добавить сайт.
Использование командной строки
Вы также можете создать веб-сайт в IIS с помощью командной строки. Чтобы создать сайт, введите:
cd %windir%\system32\inetsrv
appcmd add site /name:MyWebsite /physicalPath:C:\inetpub\wwwroot\MyApp /bindings:http/*:80:example.com /apppool:DotNetCorePool
Замените «MyWebsite» на имя вашего веб-сайта, C:\inetpub\wwwroot\MyApp — на путь к вашему приложению, example.com — на имя вашего домена, а DotNetCorePool — на пул приложений, который вы создали на предыдущем шаге.
Шаг 5. Настройте модуль ASP.NET Core.
Убедитесь, что файл web.config правильно настроен для модуля ASP.NET Core для пересылки HTTP-запросов в ваше приложение. Этот файл должен быть включен в опубликованный результат и содержать такие настройки, как следующие:
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\YourApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
</system.webServer>
</configuration>
Замените YourApplication.dll именем библиотеки вашего приложения.
Шаг 6. Проверьте свое приложение
Откройте веб-браузер и перейдите по URL-адресу, который вы настроили для своего сайта. Если все настроено правильно, ваше приложение.NET Core должно работать в IIS.
Решение распространенных проблем
Ошибка HTTP 502.5 — Ошибка процесса: часто указывает на проблему с процессом запуска приложения. Проверьте журналы событий и журналы стандартного вывода (если они включены) на наличие конкретных ошибок.
Внутренняя ошибка сервера 500. Это может произойти по разным причинам, включая проблемы с файлом web.config или зависимостями приложения. Опять же, журналы имеют неоценимое значение при диагностике этих проблем.
404 Файл или каталог не найден. Это может произойти, если физический путь приложения неверен или пул приложений настроен неправильно.
Заключение
Развертывание приложения.NET Core в IIS включает несколько шагов: от установки пакета хостинга.NET Core до настройки IIS и публикации приложения. Следуя этому руководству, вы сможете обеспечить бесперебойный процесс развертывания и в кратчайшие сроки запустить приложение.NET Core в IIS. Помните, что устранение неполадок является неотъемлемой частью развертывания, поэтому не пугайтесь первоначальных сбоев; используйте журналы и сообщения об ошибках в качестве руководства для устранения любых проблем.