gpt4 book ai didi

c# - Azure.Messaging.EventHubs 与 WindowsAzure.ServiceBus 生成的消息有区别吗?

转载 作者:行者123 更新时间:2023-12-03 00:23:22 25 4
gpt4 key购买 nike

我有一个生产者将消息写入 Azure 事件中心,还有一个使用者从事件中心读取消息。我将生产者升级到 .Net core,并在此过程中从使用 WindowsAzure.ServiceBus 包切换到 Azure.Messaging.EventHubs 来将消息写入事件中心。

来自旧生产者的事件仍在处理中,没有问题。但是,当消费者收到来自新生产者的任何消息时,我发现事件处理器在处理我的事件之前抛出异常。

Unable to cast object of type 'System.Collections.Generic.List`1[System.Diagnostics.Activity]' to type 'System.Collections.Generic.IEnumerable`1[System.Diagnostics.Activity]'

此消息不会显示在 Azure 的日志输出中,但会显示在 Application Insights 中。 当我在本地计算机上运行时,不会引发异常。

此问题已 reported as a bug在官方 Azure Functions EventHub 存储库上。在评论中,用户提到该问题是在 4.1.0 版本中引入的,恢复到 4.0.1 修复了该问题。

我恢复到4.0.1,它停止了抛出异常,但是旧消息和新消息之间仍然存在差异。我正在使用 Microsoft.Azure.Functions.Extensions 进行依赖项注入(inject)。每当我收到一批完全旧的消息时,就没有问题。但是,当我收到包含新消息的批处理时,依赖项注入(inject)范围没有配置服务

如果我在本地运行该项目,则没有问题。只有当我部署到 Azure Functions 环境时才会出现这些问题。

到目前为止,我已经:

  • 以 Debug模式而不是 Release模式部署
  • 创建了一个新的 Azure Function 应用并部署了新的
  • 将发布配置从“依赖框架”更改为“自包含”
  • 更新了发布者以使用 Microsoft.Azure.EventHubs,以便发布者和使用者使用相同的包

我尝试思考我的本地环境和 Azure Functions 环境之间可能存在哪些不同,以便我看到行为上的差异。

本地:

  • dotnet SDK 3.1.301
  • dotnet 运行时 3.1.7

azure :

  • dotnet SDK 3.1.302
  • dotnet 运行时 3.1.6

最佳答案

根据原发帖者的评论分享答案:

将消费者恢复为 Microsoft.Azure.WebJobs.Extensions.EventHubs 4.0.1并将发布配置文件更改为 <SelfContained>false</SelfContained>已解决问题。

关于c# - Azure.Messaging.EventHubs 与 WindowsAzure.ServiceBus 生成的消息有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63716454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com