Windows服务停止从Azure服务总线

时间:2018-04-24 20:09:52

标签: .net windows-services azureservicebus

我在Windows服务器2012上运行了一个Windows服务,该服务从azure服务总线(订阅)读取消息并处理该消息。最近,Windows服务停止阅读任何消息。如果重新启动服务,它将开始读取消息。并会继续处理消息,直到它再次停止阅读消息(空闲?)。

没有失败,服务没有抛出异常。

使用ReceiveMode.PeekLock。

nuget包:WindowsAzure.ServiceBus 3.0.8

如何解决此问题,以便服务不断阅读邮件?

var subscriptionDescription = new SubscriptionDescription("test TopicPath, "my SubscriptionName")
                {
                    LockDuration = new TimeSpan(0, 0, 180),
                    MaxDeliveryCount = 2
                };

... 根据subscriptionDescription创建或更新订阅 ...

 var subscriptionClient = SubscriptionClient.CreateFromConnectionString("test ConnectionString", "test TopicPath","my SubscriptionName", ReceiveMode.PeekLock);
var onMessageOptions = new OnMessageOptions
        {
            MaxConcurrentCalls = 3,
            AutoComplete = false
        };
subscriptionClient.OnMessage(HandleMessage, onMessageOptions);

... ..

private void HandleMessage(BrokeredMessage brokeredMessage)
{
    ProcessMessage(message);
    brokeredMessage.SafeComplete();
}

0 个答案:

没有答案