You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6开发Windows服务遇IServiceCollection无Configuration定义编译错误

问题原因

IServiceCollection 接口本身不包含Configuration属性或对应的扩展方法,你遇到的IntelliSense提示属于误报,你当前已引用的两个NuGet包已经满足.NET 6 Windows服务开发的基础依赖,不需要额外安装其他依赖包,调整代码写法即可解决编译错误。

修正方案

使用带HostBuilderContext参数的ConfigureServices重载,从上下文实例中获取已默认加载的配置对象即可,修改后代码如下:

IHost host = Host.CreateDefaultBuilder(args)
    .UseWindowsService(options =>
    {
        options.ServiceName = "My Service";
    })
    .ConfigureServices((context, services) =>
    {
        var settings = new ScriptOptions(); // ScriptOptions为自定义POCO类
        // 从HostBuilderContext中读取配置并绑定
        context.Configuration.Bind(settings);
        // 若需要后续通过IOptions<ScriptOptions>注入使用,可改为注册配置:
        // services.Configure<ScriptOptions>(context.Configuration);

        services.AddHostedService<WindowsBackgroundService>();
    })
    .Build();

补充说明

Host.CreateDefaultBuilder 方法默认已经自动加载了以下配置源,无需手动额外配置:

  • 项目根目录下的appsettings.json
  • 项目根目录下的appsettings.{环境名称}.json
  • 系统环境变量
  • 命令行启动参数

内容的提问来源于stack exchange,提问作者Luke Vo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:15:06