我在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();
}