Два дня назад я перепечатал анализ запуска .NET core, потому что при выпуске я был запутан в стандартном порте 5000, поэтому внимательно изучил его.
1. Интеграция IIS
Если вы используете IIS как хост, то это не проблема, мощный IIS поможет нам настроить доменное имя, порт и т.д. сайта. Что касается того, как развернуть asp.net core веб-приложение на IIS, это не суть здесь. Грубо опишите это:
Вам нужно скачать SDK Net Core и хостинг серверов, и адрес для загрузки — https://www.microsoft.com/net/download
После установки проверьте, успешно ли установлен .NET Core SDK в командной строке в dotnet
Ниже показано, успешно ли установлен серверный хост в IIS модуле и отображение обработчиков
Затем настройте сайт и укажите файлы для сайта публикации
Наконец, пул программ должен быть настроен и выбран неуправляемым, чтобы появился запрос на переадресацию хоста сервера.
2. Среда Linux
Не говоря уже о конкретной установке, их тоже много. Согласно инструкции на официальном сайте, то есть установите среду запуска .NET Core, и она может работать.
Вот рекомендуемый блог-пост для вашей личной справки: Развертывание ASP.NET основных приложений в продакшн (CentOS7)
Возвращаясь к главному вопросу: как настроить параметры URL и порта
1. Указать в основном методе программирования
Этот подход негибкий и не слишком элегантн, даже если его читать с добавлением конфигурационного файла. В то время я почувствовал, что Microsoft определённо не порекомендовала бы такое применение, поэтому продолжил искать его.
2. Передайте переменную среды
Я видел статью в интернете «Как настроить URL Kestrel в ASP.NET Core RC2»,
Хотя он всё ещё настроен через конфигурационный файл, ему не нужно читать конфигурационную информацию в другие статьи, и его можно использовать напрямую, привязывая или вставляя код, чтобы увидеть:
hosting.json
Program.cs
Так он также может слушать
Теперь слушайте: http://localhost:60000
Теперь слушайте: http://localhost:60001
Разве это не потрясающе! Я не выношу сам бой, вычтите исходный код! Самое лучшее в .NET Core — это наличие исходного кода!
Исходя из источников, мы можем знать, что это в основном класс WebHostBuilder, в пространстве имён Microsoft.AspNetCore.Hosting.
Основной метод — Build
Основная задача здесь — построить объект WebHost, а затем искать дальше
Рассматривая исходный код с помощью метода Initialize, мы можем узнать URL-адрес, созданный методом EnsureServer
Здесь мы видим, что он читает _config[WebHostDefaults.ServerUrlsKey] и _config[DeprecatedServerUrlsKey] из конфигурации.
Значение WebHostDefaults.ServerUrlsKey является фиксированным значением
Значение DeprecatedServerUrlsKey определяется в начале объекта WebHost
О! Правда раскрывается. Так что мы можем установить "server.urls" в конфигурационном файле.
Резюме:
В итоге, asp.net ядро прочитает конфигурацию в переменной среды при запуске, и на самом деле нужно добавить следующую конфигурацию к свойствам проекта:
Игра была запущена в консольном режиме и обнаружила, что порт был переключен.
Итак, это среда разработки, как её развернуть на производственной линии? Это тоже очень просто: взять в пример развертывание Linux, использовать демон-супервайзер для запуска программы, добавить переменные среды в конфигурацию запуска супервайзера:
Добивайся успеха с отличным успехом! Ни одной строки кода не нужно менять, ха-ха~ |