Два дні тому я перевидав аналіз запуску .NET ядра, бо був заплутаний у стандартному порті 5000, коли він вийшов, тож уважно його вивчив.
1. Інтеграція IIS
Якщо ви використовуєте IIS як хост, то це не проблема, потужний IIS допоможе налаштувати доменне ім'я, порт тощо сайту. Щодо того, як розгорнути asp.net core веб-додаток на IIS, це не головне. Приблизно опишіть це:
Вам потрібно завантажити Net Core SDK та хостинг серверів, і адреса завантаження https://www.microsoft.com/net/download
Після встановлення перевірте, чи успішно встановлено .NET Core SDK у командному рядку інформації dotnet
Чи успішно встановлено серверний хост у модулі IIS та відображення обробників, показано нижче
Потім налаштуйте сайт і вкажіть файли для сайту публікації
Нарешті, пул програм слід налаштувати і вибрати некерований, щоб з'явився запит на переадресацію хоста сервера.
2. Середовище Linux
Не кажучи вже про конкретну інсталяцію, їх теж багато. Згідно з інструкціями на офіційному сайті, тобто встановити робоче середовище .NET Core, і воно може працювати.
Ось рекомендований блог-пост для вашого власного довідки: Розгортання ASP.NET Core додатків у продакшн (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, використовуючи демон-супервайзер для запуску програми, додаючи змінні середовища до конфігурації запуску супервайзера:
Досягайте успіху на відмінно! Жодного рядка коду не потрібно змінювати, хаха~ |