在 Windows 服务中托管 Blazor Consol 应用?

Host Blazor Consol app in Windows Service?

我在控制台应用程序项目中有一个 Blazor .NET 5.0 网站,我如何在 Windows 服务中托管它?

我需要 sc.exe 的 exe 文件,但只获取 dll 和 wwwwroot。发布网页也无济于事。

此致

在您的托管项目中使用 Microsoft.Extensions.Hosting.WindowsServices nuget。您可以通过调用 'UseWindowsService'.

创建一个可以 运行 作为 Windows 服务的通用主机

示例.NET Core 3.1/.Net 5:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }
    
    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
            .UseWindowsService();
}

在 ASP.NET Core 中托管的 Blazor 应用程序的 .NET 6 项目模板中,它会有点不同,因为使用了 WebApplicationBuilderIHostBuilder 可以通过 Host 属性.

访问
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseWindowsService();

可以使用 New-Service powershell command. You can read more here https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-6.0&tabs=visual-studio

创建服务