在 Windows 服务中托管 ASP.NET Core
概述
眾所周知,ASP.NET Core采用了和傳統(tǒng)ASP.NET不同的托管和HTTP處理方式,即把服務器和托管環(huán)境完全解耦。
ASP.NET Core內置了兩個HTTP服務器實現(xiàn),一個是基于libuv實現(xiàn)的Kestrel(支持跨平臺),一個是基于Windows HTTP Server API實現(xiàn)的WebListener(僅支持Windows)。
而托管環(huán)境可以和服務器不相關,一般情況是自托管,或者托管到IIS/IISExpress中(此處的IIS僅作為反向代理把請求轉發(fā)給所使用的服務器實現(xiàn))。
因此,打算以Windows Service這種比較傳統(tǒng)的方式來部署ASP.NET Core的Web應用也是可行的(本質還是自托管,只是啟動進程并非控制臺程序,而是一個Windows Service)。這不,微軟就很貼心的提供了一個Nuget來支持:Microsoft.AspNetCore.Hosting.WindowsServices,
不使用 IIS 時,可以在 Windows 上將 ASP.NET Core 應用作為 Windows 服務進行托管。?作為 Windows 服務進行托管時,應用將在服務器重新啟動后自動啟動。
系統(tǒng)必備
ASP.NET .NET Core SDK 2.1 或更高版本
PowerShell 6.2 或更高版本
步驟
1、新建 ASP.NET Core 項目
2、引入Nuget包 Microsoft.AspNetCore.Hosting.WindowsServices
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="3.0.0" />3、Program修改為如下:
4、發(fā)布項目
5、管理員身份進入cmd ?切換到項目目錄下
執(zhí)行
sc create MyService binPath="D:\svc\MvcService.exe" 然后手動到服務里面啟動服務或者 sc start MyService源碼下載
https://github.com/conanl5566/dotnet-core-Example/
tree/master/WebApplication24
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的在 Windows 服务中托管 ASP.NET Core的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新鲜高频笔面试题分享,Redis、Mon
- 下一篇: asp.net ajax控件工具集 Au