我的 NServiceBus 项目将不再从 Azure 队列中读取。
我删除了它们,因为可能有一些消息卡住了,但现在它将不再创建队列。注意:用于自行自动创建队列的完全相同的代码和凭据。相反,我得到:
40400: 未找到端点..
在 Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageSender.EndSendCommand(IAsyncResult 结果) 在 Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageSender.OnEndSend(IAsyncResult 结果) 在 Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageSender.OnSend(TrackingContext trackingContext, IEnumerable
1 messages, TimeSpan timeout) at Microsoft.ServiceBus.Messaging.MessageSender.Send(TrackingContext trackingContext, IEnumerable
1 条消息,TimeSpan 超时)在 Microsoft.ServiceBus.Messaging.QueueClient.Send(BrokeredMessage 消息)在 NServiceBus.Unicast.Queuing.Azure.ServiceBus.AzureServiceBusMessageQueue.Send(字节)的 Microsoft.ServiceBus.Messaging.MessageSender.Send(BrokeredMessage 消息) [] rawMessage,QueueClient 发件人)在 c:\TeamCity\buildAgent\work\nsb.master_7\src\azure\Queueing\NServiceBus.Unicast.Queuing.AppFabric\AzureServiceBusMessageQueue.cs:NServiceBus.Unicast.Queuing.Azure 的第 179 行。 ServiceBus.AzureServiceBusMessageQueue.Send(TransportMessage message, Address address) in c:\TeamCity\buildAgent\work\nsb.master_7\src\azure\Queueing\NServiceBus.Unicast.Queuing.AppFabric\AzureServiceBusMessageQueue.cs:NServiceBus.Unicast 的第 160 行.UnicastBus.SendSubscribeMessageWithRetries(地址目的地,TransportMessage subscriptionMessage, String messageType, Int32 retriesCount) in c:\TeamCity\buildAgent\work\nsb.master_7\src\unicast\NServiceBus.Unicast\UnicastBus.cs:NServiceBus.Unicast.UnicastBus.<>c_ 的第 476 行c:\TeamCity\buildAgent\work\nsb.master_7\src\unicast\NServiceBus.Unicast\UnicastBus.cs 中的DisplayClass8.b _7(对象状态):System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback 回调的第 433 行, 对象状态, Boolean preserveSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在 System.Threading.ThreadPoolWorkQueue 。派遣()
我的配置如下:
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"
};
}
}
}