Традиционно приложения asp. Net развертывались на веб-сервере iis. Однако поскольку asp. Net core имеет кроссплатформенную природу, потребовалось отвязать asp. Net core от iis и в целом от Windows
Установка приложения в виде службы Windows
Download 47.04 Kb.
|
1 2
Bog'liqServer bilan ishlash
Установка приложения в виде службы Windows
ASP.NET Core можно развертывать в виде обычной службы Windows без каких-либо веб-серверов, в частности, IIS. Создадим новый проект ASP.NET Core 2.1 любого типа. Прежде всего, нам надо добавить в проект через Nuget пакет Microsoft.AspNetCore.Hosting.WindowsServices. После создания проекта обратимся к файлу Program.cs, который во всех проектах выглядит идентично: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; namespace ServiceHostingApp { public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup } } Изменим его следующим образом: using System.Diagnostics; using System.IO; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting.WindowsServices; namespace ServiceHostingApp { public class Program { public static void Main(string[] args) { // получаем путь к файлу var pathToExe = Process.GetCurrentProcess().MainModule.FileName; // путь к каталогу проекта var pathToContentRoot = Path.GetDirectoryName(pathToExe); // создаем хост var host = WebHost.CreateDefaultBuilder(args) .UseContentRoot(pathToContentRoot) .UseStartup .Build(); // запускаем в виде службы host.RunAsService(); } } } Чтобы запустить приложение в виде службы у объекта IWebHost вызывается метод RunAsService(). Публикация Теперь нам надо опубликовать приложение в файловой системе. Мы можем это сделать через консоль с помощью команды dotnet publish. Для этого вначале в командной строке/терминале надо перейти к папке проекта и из нее запустить команду: dotnet publish --configuration Release --runtime win10-x64 --output c:\myapp Поскольку приложение будет устанавливаться в виде службы Windows и должно иметь исполняемый файл, то указывается параметр --runtime. В данном случае служба будет устанавливаться на Windows 10 с 64-битной архитектурой. Поэтому для этого параметра указано значение win10-x64. Параметр --output указывает, где будет опубликовано приложение - то есть в данном случае в папке c:\myapp. Также можно поизвести публикацию с помощью графических средств в Visual Studio. Создание службы После публикации с помощью консольной утилиты sc.exe создадим службу: sc create НАЗВАНИЕ_СЛУЖБЫ binPath= "ПУТЬ К ИСПОЛНЯЕМОМУ ФАЙЛУ EXE" После команды create указывается имя службы. Службу можно назвать как угодно. Параметр binPath указывает на путь к исполняемому файлу (в том числе имя самого файла). Причем между знаком равно и путем к файлу в кавычках должен идти пробел. Например, ранее приложение было опубликовано в папке c:\myapp. Как правило, название исполняемого файла соответствует названию проекта, то есть в моем случае в папке c:\myapp после публикации находится исполняемый файл ServiceHostingApp.exe. И, допустим, служба буде называться MyAspService. В этом случае команда на создание службы будет выглядеть следующим образом: sc create MyAspService binPath= "c:\myapp\servicehostingapp.exe" Запуск службы После установки службы запустим ее с помощью команды: sc start MyAspService Команде start передается имя ранее установленной службы - в моем случае это MyAspService. После установки мы можем обратиться обратиться к нашему веб-приложению из браузера по адресу http://localhost:5000: Download 47.04 Kb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling