.net core 从Azure ServiceBus中的订阅/主题读取现有邮件

.net core 从Azure ServiceBus中的订阅/主题读取现有邮件,.net-core,azureservicebus,.net Core,Azureservicebus,我正在尝试使用Microsoft.Azure.ServiceBus.dll(在.Net Core 2.1中)读取Azure ServiceBus订阅上的所有现有邮件,但我遇到了困难 我发现了许多例子,下面的方法应该有效,但实际上不行: var client = new SubscriptionClient(ServiceBusConnectionString, topicName, subscription, ReceiveMode.PeekLock, null); var totalRetri

我正在尝试使用Microsoft.Azure.ServiceBus.dll(在.Net Core 2.1中)读取Azure ServiceBus订阅上的所有现有邮件,但我遇到了困难

我发现了许多例子,下面的方法应该有效,但实际上不行:

var client = new SubscriptionClient(ServiceBusConnectionString, topicName, subscription, ReceiveMode.PeekLock, null);
var totalRetrieved = 0;

while (totalRetrieved < count)
{
    var messageEnumerable = subscriptionClient.PeekBatch(count);

    //// ... code removed from this example as not relevant
}
var client=newsubscriptionclient(ServiceBusConnectionString,topicName,subscription,ReceiveMode.PeekLock,null);
var=0;
while(总检索数<计数)
{
var messageEnumerable=subscriptionClient.PeekBatch(计数);
////…从此示例中删除的代码不相关
}
我的问题是.peek批处理方法不可用,我不知道该如何处理这个问题

我已经从GitHub()下载了ServiceBusExplorer的源代码,上面的代码示例与它所做的差不多。但不在.Net Core/Microsoft.Azure.ServiceBus命名空间中


不过,为了清楚起见,我正在尝试读取队列中已经存在的消息-我已经通过其他示例创建了响应新消息的侦听器,但在消息已经放置到队列中之后,我需要以这种断开连接的方式工作。

ServiceBusExplorer使用WindowsAzure.ServiceBus库,它是一个.Net Framework库,您不能在.Net核心应用程序中使用它。您应该在.Net核心应用程序中使用Microsoft.Azure.ServiceBus(.Net标准库)

检查Microsoft.Azure.ServiceBus的示例

var client = new SubscriptionClient(ServiceBusConnectionString, topicName, subscription, ReceiveMode.PeekLock, null);
client .RegisterMessageHandler(
    async (message, token) =>
    {   
        await subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
    }
    );
尝试使用RegisterMessageHandler。会的 从实体连续接收消息。它注册一个消息处理程序并 开始一个新线程以接收消息。等待处理程序
每次接收者收到新消息时。

谢谢@Balasubramaniam,但正如我在帖子中提到的,RegisterMessageHandler对所有新消息都有效-我需要访问队列上的现有消息。谢谢@Arunprabhu-将进行调查。顺便说一句,我爱微软,但我觉得他们对这一切的命名令人震惊,因为没有一个是特别清楚的!只是查看了该链接-是代码示例演示了如何使用RegisterMessageHandler在新消息进入队列时访问它们。RegisterMessageHandler接收来自队列的所有消息,即使队列中已经有多条消息可用。Brett Rigby是对的-我也无法读取现有消息