当前位置: 首页 > 知识库问答 >
问题:

NServiceBus在Azure中创建队列失败

时同
2023-03-14

我的NServiceBus项目将不再读取Azure队列。

我删除了它们,以为可能有一些消息被卡住了,但现在它将不再创建队列。注意:完全相同的代码和凭证用于自动创建队列。相反,我得到的是:

40400:未找到终结点。。

在微软。ServiceBus.消息传递。sbmp。SbmpMessageSender.微软的EndSend命令(IAsyncResult结果)。ServiceBus.消息传递。sbmp。SbmpMessageSender.微软的OnEnd发送(IAsyncResult结果)。ServiceBus.消息传递。sbmp。SbmpMessageSender.在Microsoft上发送(TrackingContext trackingContext, IENumable1消息,TimeSpan超时)。ServiceBus.消息传递。MessageSender.在Microsoft发送(TrackingContext trackingContext, IENumable1消息,TimeSpan超时)。ServiceBus.消息传递。MessageSender.在Microsoft发送(BrokeredMessage消息)。ServiceBus.消息传递。QueueClient.在NServiceBus发送(BrokeredMessage消息)。单播。排队。天青。ServiceBus.AzureServiceBusMessageQueue.发送(Byte[]rawMessage, QueueClient发件人)在c:\TeamCity\BuildAgent\work\nsb.master_7\src\azure\Queuing\NServiceBus.单播。排队。AppFabric\AzureServiceBusMessageQueue.cs:NServiceBus的第179行。单播。排队。天青。ServiceBus.AzureServiceBusMessageQueue.在c:\TeamCity\BuildAgent\work\nsb.master_7\src\azure\Queuing\NServiceBus中发送(TransportMessage消息,地址地址)。单播。排队。AppFabric\AzureServiceBusMessageQueue.cs:NServiceBus的第160行。单播。UnicastBus.在c:\TeamCity\BuildAgent\work\nsb.master_7\src\uniast\NServiceBus中发送订阅消息(地址目的地,传输消息订阅消息,字符串消息类型,Int32检索计数)。Unicast\UnicastBus.cs:NServiceBus的第476行。单播。UnicastBus.

我的配置如下:

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个答案

丁宏浚
2023-03-14

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

此外,NSB不创建目标队列,endpoint只创建在启动时从中读取的队列。删除队列后,是否重新启动侦听该队列的endpoint?

 类似资料:
  • 我们目前正在使用nservicebus从azure servicebus队列读取消息。 我可以通过代码创建所需的队列,但有人知道我是否可以设置配置文件,在azure上自动创建错误和输入队列吗?

  • 我正在尝试在Azure中设置NServiceBus。在本地开发期间,我使用存储队列,在部署到云中时,我使用Azure服务总线。由于某些原因,当发生错误时,消息不会移动到错误队列。事实上,甚至没有创建错误队列。 在我的网上。配置文件I具有以下配置: 配置NServiceBus时,我调用: 当消息失败时,日志中的最后一个错误总是 对此有什么想法吗?消息传递似乎起作用了,只是错误处理不起作用。

  • 我们有一个使用NServicebus的本地Web应用程序,我们希望将队列移动到Azure(作为完全基于云的更大迁移路径的一部分)。我正试图建立一个POC,但似乎无法让它工作。 我有以下配置: 在我的应用程序中,我将总线配置为: 当我尝试发布到队列时,我得到以下消息: 我有点不知所措,我尝试了在网上找到的几种不同的示例,但我觉得我对azure知识的缺乏阻碍了我的发展。我从这个问题中提取了大部分配置:

  • 似乎所有附带nServicebus的示例项目都设置为发送者和宿主是Web角色和辅助角色(并通过角色切入点托管)。 我需要这样做: Web角色发送消息- 是否可以将本地主机配置为仅使用Azure队列存储(而不是MSMQ)? 我似乎在任何地方都找不到一个记录在案的例子。

  • 我在MassTransit和azure服务总线上开发了一个简单的发布/订阅示例作为消息代理。我不明白的是,每次启动解决方案时,MassTransit都会为每个连接到总线的服务实例创建一个队列: 我不知道这样做的目的是什么。在我停止服务后,队列将被释放。MassTransit文档没有对此给出解释。也许这里有人知道?

  • 我是NServiceBus的新手。我有一个关于错误队列的问题。在我的IHandleMessages类中,抛出了一个异常。但是,消息不会发送到错误队列。日志文件中没有异常信息。即使当我声明一个尝试捕获块时,异常似乎没有被尝试捕获块捕获。有人能帮我澄清NserviceBus中的错误队列和异常处理吗?谢啦