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

微软。天青。ServiceBus.将消息发送到Azure服务总线主题队列

东方乐
2023-03-14

我的应用程序中有以下代码片段,用于向Azure service bus主题队列发送消息。在发送消息的html" target="_blank">过程中,我会随机收到通用ServiceBusException。

     var serialized = JsonConvert.SerializeObject(message);
     var _client = new TopicClient(connectionString, $"{queuePrefix}{queueName}");

        var m = new Message(Encoding.ASCII.GetBytes(serialized))
        {
            MessageId = messageId,
            ContentType = "application/json"
        };

        await RetryHelper.WithRetries(async () =>
        {
            await _client.SendAsync(m);
        }, new Common.RetryPolicy(3, TimeSpan.Zero, typeof(ServiceBusTimeoutException)));

这是我的例外,

服务无法处理请求;请重试操作。有关异常类型和正确异常处理的更多信息,请参阅http://go.microsoft.com/fwlink/?LinkId=761101TrackingId: 24e3ca8e-a74f-4f1b-a0e6-acf4e98a0bdc_G9,SystemTracker: client-link 78653,时间戳: 2019-01-06T01:35:50

微软。天青。ServiceBus.服务总线异常

由于本页所列的例外情况并不具体-https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-exceptions,我发现很难理解异常的根本原因并采取纠正措施。

如有任何进一步调查的信息,我将不胜感激。

共有1个答案

曹智
2023-03-14

是所有其他异常的基本异常。发生在经纪人一方的错误被发回并翻译。在这种情况下,它不能转换为留档中描述的最常见错误。在这种情况下,保留是正确的,因为例外是间歇性的。这么说,考虑的事情很少。

  • 默认情况下,客户端内部正在使用正在重试发送操作的RetryPolicy。如果可能的话,您的重试应该在一段时间后应用

建议联系支持人员,并提供您必须的跟踪标识,以帮助您理解为什么您经常看到此错误。

 类似资料:
  • 我正在构建Windows Phone应用程序,无法使用Microsoft。服务总线。信息。QueueClient类。 然后,我尝试使用Azure Service Bus REST API进行发送,但这需要我构建一个SAS令牌。但要构建SAS令牌,我需要使用Windows。安全密码学。果心MacAlgorithmNames。HmacSha256。此类显示在前面的类型中,但在编译时它不存在。 如何使用

  • 参考https://github.com/Azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.Azure.servicebus/basicsendreceiveusingtopicsubscriptionclient,我了解Azure服务总线主题的一般工作方式,我的问题更多地是关于它实际上是如何工作的。

  • 使用Azure Service Bus-Topics,我想实现一个解决方案,其中一旦生产者将消息发送到Topic,消息就会被发送/通知给最终消费者(比如队列)。 我理解主题作为pub/sub模型工作,其中订阅者需要从订阅中读取消息。但是我正在寻找一种类似队列的工作方法(当接收到任何消息时,它会触发web作业/服务)。 首先,我想知道服务巴士的主题是否是正确的选择?接下来,如果可能的话,实现一个变通

  • 我是老学校窗户蔚蓝建筑师。使用服务总线主题将消息传递给工作者角色。

  • 我有一个windows服务,它侦听Azure服务总线队列消息,以便从我的WebApi应用程序分发处理。此外,我还需要处理重复性任务(每晚/每周),我认为最好使用相同的系统来处理这些任务。 例如,假设我有一个“CleanupDb”队列,每天午夜删除过时的DB节点: 理论上这应该行得通,但我觉得我错过了一个更明显的处理方法。有没有更好的办法?

  • 我们目前正在利用Azure服务总线来处理来自应用程序的各种消息。 我想知道实时处理这些消息的最佳方式是什么? 有没有一种方法可以在消息放入队列时自动执行脚本? 我只是在想,一定有比让一个单独的应用程序每分钟/30秒检查一次队列更好的方法。 谢谢各位