azure - 为什么 Microsoft.Azure.EventHubs.Processor 仍然引用 Microsoft.WindowsAzure.Storage?
问题描述
构建 dotnet core 2.2
我包括以下内容:
using Microsoft.Azure.EventHubs; (4.0.0)
using Microsoft.Azure.EventHubs.Processor; (4.0.0)
我抛出一个异常试图做:
_eventProcessorHost = new EventProcessorHost(
hubName,
PartitionReceiver.DefaultConsumerGroupName,
_eventHubConnectionString,
_storageConnectionString,
blobName);
异常说:
“无法从程序集‘Microsoft.Azure.Storage.Common,版本=11.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35’中加载类型‘Microsoft.WindowsAzure.Storage.CloudStorageAccount’”
当我查看存根时,我确实可以看到 EventProcessorHost 的各种构造函数确实引用了旧命名空间中的成员——例如 Microsoft.WindowsAzure.Storage.CloudStorageAccount。
我的理解是旧空间 Microsoft.WindowsAzure 已完全被新空间 Microsoft.Azure 取代。我还需要导入旧空间吗?
尝试安装 Microsoft.WindowsAzure.Common,卸载并重新安装 WindowsAzure 库。
解决方案
更新 0822:
这似乎是 4.0.0 版本的 Microsoft.Azure.EventHubs.Processor 中的一个错误,有一个问题可以跟踪它。目前,您可以根据需要使用 3.0.0 版本。
而且,我按照这个官方文档来测试事件中心接收器,使用 4.0.0 包Microsoft.Azure.EventHubs
和Microsoft.Azure.EventHubs.Processor
,它在我身边运行良好。并且默认安装的 storage sdk 是Microsoft.Azure.Storage.Blob
9.4.2 版本。
注意:如您所见,EventProcessorHost 有 5 个构造函数,请使用第一个使用字符串类型的所有参数。
测试结果:
请尝试使用最新版本4.0.0
的 nuget Package Microsoft.Azure.EventHubs.Processor,它使用新版本的 storage sdk 之类的Microsoft.Azure.Storage.Blob
。截图如下:
4.0.0 之前的其他版本,如 3.0.0 / 2.2.1 仍在使用旧的存储 sdk,如WindowsAzure.Storage
.
推荐阅读
- c - 警告:'n' 的类型默认为 'int' [-Wimplicit-int] 在 'gcc' 中警告,但在 'clang' 中没有警告
- javascript - JS JSON 错误 400,值无法转换为列表
- c# - 如何根据键值组将字典拆分为多个字典?
- unicode - 在音乐播放列表中的 urlencoded 链接字符串中使用 html 实体与符号 (&) 和撇号 (') 是否合法?
- javascript - 使用 Webpack、Typescript 和 React 格式错误的 CSS 模块?
- javascript - 如何使用 V8 Google Apps Script IDE 获得正确的格式
- javascript - 有条件地创建字段对象的简单方法?
- wpf - x:Bind 的替代品适用于 UNO 平台中的 UWP,但不适用于 WASM、Droid 等
- html - 彼此下方的引导卡
- java - GridPane add() 未设置列跨度