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

Azure Function添加async后无法加载System.Runtime程序集求助

解决Azure Function异步操作中System.Runtime程序集加载错误的问题

这个问题的核心原因有几个,我帮你逐一拆解并给出修复方案:

1. 立即修复async void的问题

你当前的函数用了async public static void Run,这是异步编程里的大忌!Azure Functions运行时需要跟踪异步操作的完成状态,async void会让运行时误以为函数已经执行完毕,提前释放相关资源(包括依赖的程序集),这直接导致了你遇到的System.Runtime加载错误。

把返回类型改成async Task就好,这是Azure Functions支持的异步函数标准写法:

[FunctionName("MyTestFunction")]
public static async Task Run(
    [ServiceBusTrigger("testtopic", "testsubscription", AccessRights.Listen, Connection = "MyServiceBusConnection")] 
    string mySbMsg, 
    TraceWriter log)
{
    // 后续代码保持逻辑,下面会优化其他问题
}

2. 优化DocumentClient的实例化方式

不要每次函数调用都新建DocumentClient实例,它是线程安全的,应该复用静态实例——频繁创建销毁不仅浪费资源,也可能加剧程序集加载的问题:

// 静态实例,只初始化一次
private static readonly DocumentClient _client = new DocumentClient(new Uri(ENDPOINT), ENDPOINT_KEY);

[FunctionName("MyTestFunction")]
public static async Task Run(
    [ServiceBusTrigger("testtopic", "testsubscription", AccessRights.Listen, Connection = "MyServiceBusConnection")] 
    string mySbMsg, 
    TraceWriter log)
{
    var document = JsonConvert.SerializeObject(new { newmessage = mySbMsg }); // 别用string.Format拼JSON,容易出错
    await _client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(DATABASE, COLLECTION_ID), document);
    log.Info($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
}

注意:我把string.Format拼JSON改成了用JsonConvert(需要引用Newtonsoft.Json包),避免手动拼接JSON时的语法错误,这也是常见的坑。

3. 检查NuGet包依赖

确保你的项目引用了正确版本的依赖包:

  • 对于Azure Functions v1(.NET Framework):引用Microsoft.Azure.WebJobs.ServiceBus、Microsoft.Azure.DocumentDB,并确保Microsoft.NET.Sdk.Functions版本匹配。
  • 对于Azure Functions v2+(.NET Core/.NET 6+):引用Microsoft.Azure.WebJobs.Extensions.ServiceBus、Microsoft.Azure.Cosmos(注意v2+用Cosmos包替代旧的DocumentDB包),同时确保Microsoft.NET.Sdk.Functions是最新兼容版本。

另外,清理并重新生成项目,有时候缓存的程序集引用会导致加载错误。

4. 验证目标框架设置

如果是v1函数,目标框架设为.NET Framework 4.8;如果是v2+,设为.NET 6或更高版本(推荐LTS版本),不匹配的框架版本也会导致程序集加载异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:51:34