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

部署到Azure的.NET Core Azure Function ~3调用Form Recognizer报EventSource已存在错误

问题描述

我的.NET Core项目包含Azure Function (~3)和Azure存储账户(Blob存储)。当前我通过Azure Form Recognizer API处理存储账户中的Blob时,在Application Insights中查询到如下报错:

AI (Internal): [Azure-Core] ERROR: Exception in Command Processing for EventSource Azure-Core: An instance of EventSource with Guid 44cbc7c6-6776-5f3c-36c1-75cd3ef19ea9 already exists.

该函数在本地Visual Studio 2019开发环境运行完全正常,local.settings.json中配置的是相同的Azure Form Recognizer API和Azure存储账户,仅运行环境存在差异:一个是本地通过Visual Studio运行,另一个是部署到云端的Azure Function (~3)。

相关配置

依赖NuGet包

<PackageReference Include="Azure.AI.FormRecognizer" Version="3.1.0-beta.4" />
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.18.0" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.11" />
<PackageReference Include="Microsoft.Extensions.Configuration.AzureAppConfiguration" Version="4.4.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.13" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">

核心代码示例

public static async Task RunAsync(
[TimerTrigger("0 00 08 * * 1-5")] TimerInfo myTimer,         
[Blob("%IncomingContainer%", FileAccess.ReadWrite, Connection = "myStorageAccountString")]
CloudBlobContainer incomingContainer,
[Blob("%AnalysedContainer%", FileAccess.ReadWrite, Connection = "myStorageAccountString")]
CloudBlobContainer analysedContainer,                        
ExecutionContext context,
ILogger log)
{
    // 调用Azure Form Recognizer API执行业务逻辑
}
可行解决方案
  • 升级不稳定的beta依赖包:当前使用的Azure.AI.FormRecognizer 3.1.0-beta.4属于测试版本,内置埋点逻辑存在缺陷,将其升级到3.1.1及以上的正式稳定版即可解决版本自带的EventSource重复注册问题。
  • 移除冗余的Application Insights依赖:Azure Function v3运行时已经内置了Application Insights集成能力,单独引入Microsoft.ApplicationInsights.WorkerService包会导致两个不同版本的埋点组件同时初始化,触发Guid冲突。直接删除该NuGet依赖项,使用运行时内置的日志埋点能力即可。
  • 若必须保留独立的Application Insights配置,可在Azure Function门户的「配置」-「应用程序设置」中添加参数:键为APPINSIGHTS_INSTRUMENTATIONENGINE_EXTENSION_DISABLED,值为true,禁用运行时内置的埋点引擎,避免组件冲突。
  • 部署时勾选Visual Studio发布界面的「删除目标处的其他文件」选项,清空云端运行环境的历史残留依赖文件,避免旧版本组件残留导致的重复注册问题。
  • 若使用FunctionsStartup做自定义依赖注入,检查注册逻辑,确保FormRecognizerClient、日志服务等组件仅被注册一次,重复初始化也会触发该报错。

内容的提问来源于stack exchange,提问作者Brenners Daniel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:09:04