Недавно я оказался в состоянии размещения приложения на Windows Server. Никогда раньше не управляя Windows Server, я изо всех сил пытался найти соответствующую информацию, тем более что большая часть его написана для Windows Server с установленным пользовательским интерфейсом, а изображение по умолчанию на Azure является основным изображением без пользовательского интерфейса. Это в основном документация для себя, но, возможно, вы также найдете это полезным.
Это кросс-стой из моего Личный блог Анкет
Вступление
Это пошаговое введение, как размещать ASP. Net Core Application в Windows Server Core с IIS (Intovership Information Server).
Мы рассмотрим, как настроить IIS, как его настроить, как развернуть его с помощью веб -развертывания в Visual Studio и обеспечить подключения к этому приложению с HTTPS.
Я использую виртуальную машину от Azure, которая обеспечивает хороший пользовательский интерфейс для управления правилами брандмауэра. Это, вероятно, очень отличается для вас, поэтому я просто скажу, какие порты должны быть открыты, и не покрывать, как это сделать.
Настройка сервера
После входа на сервер вас встречает командная строка. Поскольку большинство команд, которые мы будем использовать, являются командами PowerShell, мы должны начать их. Просто введите PowerShell
и выполнить это. После этого вы должны увидеть Ps
перед подсказкой.
Теперь IIS должен быть установлен. Это сделано с этой командой:
Install-WindowsFeature Web-Server
Во время установки PowerShell показывает хороший маленький панель прогресса:
Включение удаленного управления
По умолчанию сервер не разрешает удаленное управление. Он должен быть включен путем установки веб-MGMT-Service и настройки записи реестра Hkey_local_machine \ Software \ Microsoft \ WebManagement \ Server \ EnableMoteManagement
к 1
Анкет
Имейте в виду, что ключ реестра доступен только после установки Web-Mgmt-Service.
Install-WindowsFeature Web-Mgmt-Service
Set-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1
После выполнения этих команд перезагрузить веб -сервер, чтобы изменения вступили в силу:
net stop was /y net start w3svc
Также запустите службу управления веб -управлением, иначе вы не сможете подключиться к ней.
net start wmsvc
Примечание: IIS Manager подключается через порт 8172, поэтому убедитесь, что он открыт на вашем сервере.
Включение управления на вашем устройстве Windows 10
Чтобы удаленно управлять сервером IIS, менеджер IIS должен быть установлен на вашем устройстве. Это можно сделать в Панель управления -> Программы -> Программы и функции -> Включите функции Windows на или выключение
Анкет Активирование Консоль управления IIS
Достаточно, самого IIS не должно быть установлено.
Из коробки IIS Manager не может управлять удаленными серверами. Эти функции должны быть добавлены с Менеджер IIS для удаленного администрирования . Вы можете скачать это Здесь Анкет После того, как он будет установлен, IIS Manager будет включен меню для подключения к удаленному IIS.
Теперь соединение с удаленным IIS может быть добавлено. Просто перейти к Файл -> подключиться к серверу
и заполните необходимую информацию.
Примечание: Если вы не можете подключиться, скорее всего, порт 8172 не открыт, или служба веб -управления не запускается. Сделай это с
net start wmsvc
Настройка IIS для размещения ASP. Чистые основные приложения
По умолчанию IIS не может размещать ASP. Чистые основные приложения. Аспирант Net Core Module необходим для этого, который установлен с .NET Core Windows Server Hosting Bundle.
1) Перейти к .Сеть All Downloads Page 2) Выберите .NET Основное время выполнения, вам нужно 3) Загрузить установщик хостинга сервера (это просто для копирования URL -адреса загрузки, он нужен на сервере, а не локально) 4) Скопируйте URL загрузки 5) Загрузите установщик на сервере с помощью команды
Invoke-WebRequest https://download.microsoft.com/download/8/D/A/8DA04DA7-565B-4372-BBCE-D44C7809A467/DotNetCore.2.0.6-1-WindowsHosting.exe -OutFile C:\Users\YourUsername\Downloads\DotNetCore.2.0.6-1-WindowsHosting.exe #This is the download url for the latest non-preview runtime at the time of writing (2.0.6).
6) Выполните установщик
C:\Users\YourUsername\Downloads\DotNetCore.2.0.6-1-WindowsHosting.exe
Теперь это то, что действительно удивительно для меня. Установщик выполняется с пользовательским интерфейсом, так же, как и в любых окнах. Находясь на основной установке, я подумал, что не будет абсолютно никакого пользовательского интерфейса, но я был неправ. Это также открывает интересный вариант для установки Chrome и загрузки всех необходимых файлов с ним.
Перезагрузить веб -сервер, чтобы изменения вступили в силу:
net stop was /y net start w3svc
Подготовка IIS для веб -развертывания
Поскольку это небольшой проект, наиболее удобным вариантом развертывания является веб -развертывание непосредственно в Visual Studio. Как и во всем остальном, это не поддерживается из коробки, но может быть добавлено.
Веб -развертывание можно скачать с Microsoft Download Center Анкет Используйте тот же процесс, нанесенный выше, или Chrome, ваш выбор:-)
Invoke-WebRequest https://download.microsoft.com/download/0/1/D/01DC28EA-638C-4A22-A57B-4CEF97755C6C/WebDeploy_amd64_en-US.msi -OutFile C:\Users\dominik\Downloads\WebDeploy_amd64_en-US.msi #This is the download url for the latest Web Deploy at the time of writing (3.6).
Также выполните этот установщик
C:\Users\dominik\Downloads\WebDeploy_amd64_en-US.msi
Примечание: Я где -то читал, что все функции должны быть установлены, и что установщик Завершите Опция на самом деле не устанавливает все. Так что просто выберите Обычай И убедитесь, что все функции включены.
Развертывание ASP. Чистое основное приложение
Теперь мы наконец готовы опубликовать приложение. Ну, почти. Первый профиль публикации должен быть создан.
1) Щелкните правой кнопкой мыши на ASP. Net Core Application в Explorer Solution 2) Выберите Публиковать 3) Нажмите на Создать новый профиль 4) Выберите IIS, FPT и т. Д. 5) Выберите Создать профиль где по умолчанию Публиковать введен
6) Введите необходимую информацию — Название сайта это либо Веб -сайт по умолчанию или, если вы создали другой в IIS, имя этого. 7) Нажмите Проверить соединение Чтобы проверить, было ли все введено правильно 8) Если это так, щелкните Сохранить 9) Выберите созданный профиль 10) Нажмите Публиковать и смотреть, как случается волшебство:-)
Настройка SSL
Мы достигли того, что хотели, размещая приложение. Теперь осталось только один шаг: закрепление его SSL. Не волнуйся, это не сложно, я обещаю. Там есть отличный проект под названием Windows acme Простой , что делает этот процесс действительно простым.
1) Загрузите последний выпуск (вы можете получить ссылку на скачивание со страницы релиза проекта GitHub)
Invoke-WebRequest https://github.com/PKISharp/win-acme/releases/download/v1.9.10.1/win-acme.v1.9.10.1.zip -OutFile C:\Users\dominik\Downloads\win-acme.v1.9.10.1.zip #This is the download url for the latest version at the time of writing (1.9.10.1).
2) Если это не удается с сообщением Запрос был прерван: не удалось создать безопасное канал SSL/TLS.
, попробуйте выполнить [Net.servicepointmanager]:: SecurityProtocol = [Сеть. SecurityProtocoltype]:: TLS12
заранее (из StackOverflow ).
3) Извлечь файл ZIP
Expand-Archive C:\Users\dominik\Downloads\win-acme.v1.9.10.1.zip -DestinationPath C:\Users\dominik\Downloads\win-acme.v1.9.10.1
4) Выполнить letsEncrypt.exe
C:\Users\dominik\Downloads\win-acme.v1.9.10.1\letsencrypt.exe
5) Выберите N
Чтобы создать новый сертификат в простом режиме 6) Выберите 1
Чтобы создать единственную привязку сайта IIS 7) Теперь вы должны увидеть выбор сайтов, которые вы настроили. Выберите сайт, который вы хотите получить 8) После того, как вы добавили адрес электронной почты и согласились с абонентским соглашением, он делает свое волшебство 9) Если все пойдет хорошо, ваш сайт теперь зашифрован, и вы можете покинуть Windows acme Просто ( Q
)
Закрытие
Вот и все. Приложение теперь полностью настроено. Я надеюсь, что это прохождение помогло вам так же сильно, как и в будущем, в следующий раз, когда мне придется настроить сервер Windows.
Ресурсы
- Представляем Windows Server, версия 1709
- Управлять сервером сервера
- Настройка сервера сервера IIS для удаленного управления
- Хост ASP.NET Core в Windows с IIS
Следуй за мной на Twitter Для большего количества моих мыслей, статей, проектов и работы.
Оригинал: «https://dev.to/domysee/hosting-aspnet-core-applications-on-windows-server-core-289g»