我的NServiceBus项目将不再从Azure队列中读取 .
我删除了他们,发现可能会有一些消息被卡住,但现在它将不再创建队列 . 注意:用于自动创建队列的完全相同的代码和凭据 . 相反,我得到:
40400:在Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageSender上的Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageSender.OnEndSend(IAsyncResult结果)中的Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageSender.EndSendCommand(IAsyncResult结果)处找不到 endpoints .. .OnSend(TrackingContext trackingContext,IEnumerable1消息,TimeSpan超时)在Microsoft.ServiceBus上的Microsoft.ServiceBus.Messaging.MessageSender.Send(BrokeredMessage消息)的Microsoft.ServiceBus.Messaging.MessageSender.Send(TrackingContext trackingContext,IEnumerable1消息,TimeSpan超时)位于c:\ TeamCity \ buildAgent \ work \ nsb.master_7 \ src \ azure中的NServiceBus.Unicast.Queuing.Azure.ServiceBus.AzureServiceBusMessageQueue.Send(Byte [] rawMessage,QueueClient sender)中的.Messaging.QueueClient.Send(BrokeredMessage消息) \ Queuing \ NServiceBus.Unicast.Queuing.AppFabric \ AzureServiceBusMessageQueue.cs:NServiceBus.Unicast.Queuing.Azure.ServiceBus.AzureServiceBusMessageQueue.Send(TransportMessage message,Ad)第179行c:\ TeamCity \ buildAgent \ work \ nsb.master_7 \ src \ azure \ Queuing \ NServiceBus.Unicast.Queuing.AppFabric \ AzureServiceBusMessageQueue.cs:第160行,位于NServiceBus.Unicast.UnicastBus.SendSubscribeMessageWithRetries(地址目的地,TransportMessage) subscriptionMessage,String messageType,Int32 retriesCount)位于c:\ TeamCity \ buildAgent \ work \ nsb.master_7 \ src \ unicast \ NServiceBus.Unicast \ UnicastBus.cs:第476行,位于NServiceBus.Unicast.UnicastBus . <> c_DisplayClass8.b_7(Object在c:\ TeamCity \ buildAgent \ work \ nsb.master_7 \ src \ unicast \ NServiceBus.Unicast \ UnicastBus.cs:System.Threading.ExecutionContext.RunInternal的第433行(ExecutionContext executionContext,ContextCallback回调,对象状态,布尔保留的SyncCtx) )System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)在System.Threading的System.Threading.QuereadingUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()处 . ThreadPoolWorkQueue.Dispatch()
我的配置如下:
using NServiceBus.Config;
using NServiceBus.Config.ConfigurationSource;
namespace XXX
{
public class AzureConfigurationProvider :
IProvideConfiguration<AzureServiceBusQueueConfig>,
IProvideConfiguration<AzureSubscriptionStorageConfig>,
IProvideConfiguration<AzureSagaPersisterConfig>,
IProvideConfiguration<AzureDataBusConfig>
{
AzureServiceBusQueueConfig IProvideConfiguration<AzureServiceBusQueueConfig>.GetConfiguration()
{
return new AzureServiceBusQueueConfig
{
QueueName = "XXX",
IssuerKey = "XXX",
IssuerName = "XXX",
ServiceNamespace = "XXX"
};
}
AzureSubscriptionStorageConfig IProvideConfiguration<AzureSubscriptionStorageConfig>.GetConfiguration()
{
return new AzureSubscriptionStorageConfig
{
ConnectionString = "DefaultEndpointsProtocol=https;" +
"AccountName=XXX;" +
"AccountKey=XXX",
CreateSchema = true
};
}
AzureSagaPersisterConfig IProvideConfiguration<AzureSagaPersisterConfig>.GetConfiguration()
{
return new AzureSagaPersisterConfig
{
ConnectionString = "DefaultEndpointsProtocol=https;" +
"AccountName=XXX;" +
"AccountKey=XXX",
CreateSchema = true
};
}
AzureDataBusConfig IProvideConfiguration<AzureDataBusConfig>.GetConfiguration()
{
return new AzureDataBusConfig
{
ConnectionString = "DefaultEndpointsProtocol=https;" +
"AccountName=XXX;" +
"AccountKey=XXX"
};
}
}
}
1 回答
您使用的是哪个版本的NServiceBus?
此外,NSB不会创建目标队列, endpoints 只会创建从启动时读取的队列 . 删除队列后,您是否重新启动了侦听该队列的 endpoints ?