Blazor Server as a Windows Service
Blazor Server as a Windows Service is very easy, but there are not many articles talking about this, so I decided to write this.
Install NuGet Package
Install Microsoft.Extensions.Hosting.WindowsServices from NuGet Package Manager.
Edit Program.cs
Add using Microsoft.Extensions.Hosting.WindowsServices;.
using Microsoft.Extensions.Hosting.WindowsServices;
Change var builder = WebApplication.CreateBuilder(args); to the following code. ContentRootPath is required for Windows Service, otherwise the service will fail to the start.
var builder = WebApplication.CreateBuilder(new WebApplicationOptions()
{
ContentRootPath = WindowsServiceHelpers.IsWindowsService() ? AppContext.BaseDirectory : default,
Args = args
});
Add this before var app = builder.Build();.
builder.Host.UseWindowsService();
Publish the app
Publish your app and click Open folder and grab your program exe path.
Create and start the Windows Service
Run cmd.exe as administrator.
Create a Service with the following command. The <BIN_PATH> should be your program exe path.
sc create <SERVICE_NAME> binPath="<BIN_PATH>"
Example,
sc create WindowsGSM binPath="D:\WindowsGSM\WindowsGSM\bin\Release\net6.0\publish\WindowsGSM.exe"
Start the Service with the following command.
net start <SERVICE_NAME>
Example,
net start WindowsGSM
Your app should be now started as Windows Service. 👏
If your service fail to start, you may run Event Viewer program on Windows to see the service log. Good luck!
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。