首页 文章

NServiceBus无法在Azure中创建队列

提问于
浏览
0

我的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 回答

  • 1

    您使用的是哪个版本的NServiceBus?

    此外,NSB不会创建目标队列, endpoints 只会创建从启动时读取的队列 . 删除队列后,您是否重新启动了侦听该队列的 endpoints ?

相关问题