带有 .NET 6 的 Windows 服务未与 WebApplication 生成器一起运行

问题描述 投票:0回答:1

我在尝试创建 Windows 服务时遇到以下错误:

描述:由于未处理的异常,进程被终止。 异常信息:System.NotSupportedException:内容根目录从“C:\WINDOWS\system32”更改为“C: oo oo\publish”。不支持使用 WebApplicationBuilder.Host 更改主机配置。请改用 WebApplication.CreateBuilder(WebApplicationOptions)。

我的建造者:

    var builder = WebApplication.CreateBuilder(args);

    builder.Services...

    builder.Host.UseWindowsService();

    builder.Host.UseSerilog((ctx, lc) => lc
                .WriteTo.Console()
                .WriteTo.File(_logDir)
                .ReadFrom.Configuration(ctx.Configuration));

    WebApplication app = builder.Build();
    app.Run();

它适用于

IHostBuilder

public static IHostBuilder CreateServiceHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseWindowsService()
        ..

我做错了什么?

c# windows-services .net-6.0 c#-10.0
1个回答
1
投票

正如错误所示,您需要将

ContentRootPath
设置为
WebApplicationOptions

var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
    ContentRootPath = @"C:\foo\foo\publish",
    Args = args
});
© www.soinside.com 2019 - 2024. All rights reserved.