从 Azure Web 应用发送消息时出现 Azure ServiceBus 超时



我们面临着托管在 Azure Web 应用程序中的 Web API 的问题。我们正在 Azure 服务总线中插入一条消息。通过 Azure Web 应用将消息发送到服务总线队列时出现间歇性超时问题,但在本地调试相同的代码时,它工作正常。在这两种情况下,服务总线是相同的。找不到相同的原因。下面是代码片段。

Logger.Log(ErrorLevel.Info, "Started Sending Message to Service Bus for Job Id :" + newjobObject.JobId);
ServiceBusRepository.SendMessageToQueue(jobEntity.JobId);
Logger.Log(ErrorLevel.Info, "Completed Sending Message to Service Bus for Job Id :" + newjobObject.JobId);

这是 SendMessageToQueue 方法的代码

public  static void SendMessageToQueue(string Message)
        {
            try
            {
                var message = new BrokeredMessage(Message);
                Logger.Log(ErrorLevel.Info,"Before SendMessagetoQueue= " + message);
                sendQueueClient.Send(message);
                Logger.Log(ErrorLevel.Info,"After SendMessagetoQueue= " + message);
            }
            catch(Exception ex)
            {
                Logger.Log(ex.Message.ToString());
            }
        }

在日志中,只有第一个日志记录语句被记录,而不是第二个日志记录语句。因此,这意味着在发送消息时发生了一些异常。任何人都可以提供指针来调试此问题。

间歇性超时异常 ( System.TimeoutException ( 是暂时性异常,是可以接受的。根据文档,您应该为任何暂时性异常添加重试逻辑。

除此之外,对于超时异常,您可能希望调整消息传递出厂设置(请参阅此处的文档(。

当客户端引发异常时,请更接近该异常。它将包含可能有所帮助的信息。将其与问题一起发布不会有什么坏处。

相关内容

  • 没有找到相关文章

最新更新