发送消息时服务总线未知错误(0xffffffff)

时间:2019-04-22 15:42:57

标签: c# azureservicebus

我有一个连接到服务总线队列的Azure App Service API。一切正常运行了一段时间,但后来我开始出现以下错误:

System.AggregateException: One or more errors occurred. (Unknown error (0xffffffff) ErrorCode: SocketError) ---> Microsoft.Azure.ServiceBus.ServiceBusCommunicationException: Unknown error (0xffffffff) ErrorCode: SocketError ---> System.Net.Sockets.SocketException: Unknown error (0xffffffff)
   at Microsoft.Azure.ServiceBus.ServiceBusConnection.CreateConnectionAsync(TimeSpan timeout)
   at Microsoft.Azure.Amqp.FaultTolerantAmqpObject`1.OnCreateAsync(TimeSpan timeout)
   at Microsoft.Azure.Amqp.Singleton`1.GetOrCreateAsync(TimeSpan timeout)
   at Microsoft.Azure.Amqp.Singleton`1.GetOrCreateAsync(TimeSpan timeout)
   at Microsoft.Azure.ServiceBus.Amqp.AmqpLinkCreator.CreateAndOpenAmqpLinkAsync()
   at Microsoft.Azure.ServiceBus.Core.MessageSender.CreateLinkAsync(TimeSpan timeout)
   at Microsoft.Azure.Amqp.FaultTolerantAmqpObject`1.OnCreateAsync(TimeSpan timeout)
   at Microsoft.Azure.Amqp.Singleton`1.GetOrCreateAsync(TimeSpan timeout)
   at Microsoft.Azure.Amqp.Singleton`1.GetOrCreateAsync(TimeSpan timeout)
   at Microsoft.Azure.ServiceBus.Core.MessageSender.OnSendAsync(IList`1 messageList)
   --- End of inner exception stack trace ---
   at Microsoft.Azure.ServiceBus.Core.MessageSender.OnSendAsync(IList`1 messageList)
   at Microsoft.Azure.ServiceBus.RetryPolicy.RunOperation(Func`1 operation, TimeSpan operationTimeout)
   at Microsoft.Azure.ServiceBus.RetryPolicy.RunOperation(Func`1 operation, TimeSpan operationTimeout)
   at Microsoft.Azure.ServiceBus.Core.MessageSender.SendAsync(IList`1 messageList)
    public async Task SendAsync(string message)
    {
        var queueMessage = new Message(Encoding.ASCII.GetBytes(message));
        var queueClient = GetQueueClient("myqueue");
        await queueClient.SendAsync(queueMessage);
    }

    public IQueueClient CreateQueueClient(string queueName)
    {
        var messageBusSection = _configuration
            .GetSection("AppSettings:MessageBus");
        var connectionString = messageBusSection["ConnectionString"];
        var path = messageBusSection.GetSection("Queues")[queueName];
        return new QueueClient(connectionString, path);
    }

我认为这不是超出配额的问题,也没有说超时。关于如何调试它的任何想法吗?

2 个答案:

答案 0 :(得分:0)

注意:这不一定能解决您的问题(因为错误的描述性不是很高)。

使用ASB消息传递的最佳实践之一是reuse factories and clients

  

建议您不要关闭消息传递工厂或排队,   主题和订阅客户端发送消息后,然后   在发送下一条消息时重新创建它们。

您可能会遇到某种连接节流问题,可以通过重用QueueClient来解决问题,而不是在每次发送消息时都重新创建它。

答案 1 :(得分:0)

昨天我才刚开始收到很多这样的东西:

  

Microsoft.ServiceBus:未知错误(0xffffffff)

  

无法连接到net.tcp://some-namespace.servicebus.windows.net:9354 /。连接尝试持续时间为00:00:00。 TCP错误代码-1:未知错误(0xffffffff)。

如您所见,连接尝试直接失败。

已经工作了好几个月了,然后变得很糟糕。...我想微软又做了点什么。他们的Azure状态面板全是绿色的,但是我的功能失败率为60%。