You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

部署Azure Function时遭遇Microsoft.Extensions.Options.OptionsValidationException:Application Insights SDK未添加的问题求助

部署Azure Function时遭遇Microsoft.Extensions.Options.OptionsValidationException:Application Insights SDK未添加的问题求助

兄弟,我之前踩过几乎一模一样的坑,给你几个实操的排查和解决方向,应该能帮你搞定这个头疼的问题:

  • 先确认NuGet依赖是否到位
    你用的是.NET 8的Azure Function(默认是孤立进程模式),这个版本必须手动安装Microsoft.Azure.Functions.Worker.ApplicationInsights这个NuGet包——旧版本Function可能会自动集成相关组件,但.NET 8的孤立进程架构需要明确添加。如果没装,赶紧在VS里搜这个包装最新稳定版,然后清理解决方案、重新生成后再发布。

  • 检查Program.cs里的App Insights服务注册
    孤立进程的Function需要在启动代码里配置App Insights的服务,不然会触发这个验证异常。打开你的Program.cs,确保包含这两行关键配置:

    builder.Services.AddApplicationInsightsTelemetryWorkerService();
    builder.Services.ConfigureFunctionsApplicationInsights();
    

    完整的顶级语句写法大概是这样:

    var builder = Host.CreateDefaultBuilder(args);
    builder.ConfigureFunctionsWorkerDefaults();
    // 下面这两行是App Insights的核心注册代码
    builder.Services.AddApplicationInsightsTelemetryWorkerService();
    builder.Services.ConfigureFunctionsApplicationInsights();
    
    var host = builder.Build();
    host.Run();
    
  • 验证Azure Portal的应用设置是否完整
    就算本地配置没问题,有时候发布到Azure后,App Insights的连接字符串可能没同步过去。你可以登录Azure Portal,找到你的Function应用,进入「配置」→「应用设置」,检查有没有APPLICATIONINSIGHTS_CONNECTION_STRING这个项,值要对应你关联的App Insights资源的连接字符串。如果没有,手动添加后保存并重启Function应用。

  • 如果暂时不需要监控,直接跳过验证
    要是你现在只想先把Function跑起来,后续再配置监控,可以在应用设置里新增一个项:AzureFunctionsJobHost__logging__ApplicationInsights__IsEnabled,把值设为false,这样就会跳过App Insights的验证逻辑,Function就能正常启动了。不过还是建议后续补上监控,对排查线上问题帮助很大。

你可以先从NuGet包和Program.cs配置这两步开始试,这俩是触发这个异常最常见的原因,有进展或者还有其他问题随时说哈!

火山引擎 最新活动