被Azure限制,重试策略为10分钟

时间:2016-11-21 17:01:59

标签: c# web-services azureservicebus azure-servicebus-queues

我有一个简单的控制台应用程序,它将消息上传到Azure Service Bus中的队列,稍后我下载消息并抛出此错误:请求已终止,因为实体正在受到限制。错误代码:50005。请等待00:00:10秒再试一次。 b1e7eb0b-5292-4b0c-8546-2877bfe961b8_G12。

如果我在10分钟内有5次重试的重试政策,我不明白为什么会发生这种情况。这是代码。你能告诉我为什么会这样吗?

 public WebService UpAndDownloadMessage()
    {
        string connectionString = ConfigurationManager.ConnectionStrings["ServiceBus.NameSpace"].ConnectionString;
        var queueName = ConfigurationManager.AppSettings["ServiceBus.QueueName"];

        var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
        var key = DateTime.UtcNow;
        var messageToUpload = new BrokeredMessage("This is a test message! " + key.ToString());

        client.RetryPolicy = new RetryExponential(TimeSpan.FromMinutes(0.1), TimeSpan.FromMinutes(10), 5);

        WebService service = new WebService()
        {
            Name = "AzureServiceBus",
            InitDate = DateTime.UtcNow,
        };

        try
        {
            // Send the message
            client.Send(messageToUpload);

            // Get and delete the message
            client.OnMessage(message =>
             {
                 String.Format("Message body: {0}", message.GetBody<String>());
                 String.Format("Message id: {0}", message.MessageId);
             });

            service.EndDate = DateTime.UtcNow;
            service.Status = Status.Operational;
            service.ErrorMessage = "Operational";
            return service;
        }
        catch (Exception ex)
        {
            service.EndDate = DateTime.UtcNow;
            service.Status = Status.Down;
            service.ErrorMessage = ex.Message;
            service.ErrorMessage = service.ErrorMessage.Replace("\"", "");
            service.ErrorMessage = service.ErrorMessage.Replace("\'", "");

            return service;
        }
    }

0 个答案:

没有答案