ServiceBusSender перестает работать через день ⇐ C#
-
Anonymous
ServiceBusSender перестает работать через день
Я борюсь с Azure ServiceBusSender, который выполняется в конечной точке HTTP-функции Azure. Работает нормально около суток. Затем внезапно выдается следующая ошибка, и мне придется перезапустить функцию Azure:
System.Exception: попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом по истечении определенного периода времени, или установка соединения не удалась, поскольку подключенный хост не ответил. Код ошибки: тайм-аут (ServiceCommunicationProblem). Информацию об устранении неполадок см. на странице https://aka.ms/azsdk/net/servicebus/Exc ... oubleshoot.
Если я перезапущу функции Azure, они продолжат работать около суток.
Использование Azure.Messaging.ServiceBus 7.16.1
Внедрение зависимостей:
builder.Services.AddAzureClients(clientsBuilder => { ClientsBuilder.AddServiceBusClient(appConfig.GetValue("CRMSBActivityConnectionString")) .ConfigureOptions(опции => { options.RetryOptions.Delay = TimeSpan.FromMilli Seconds(50); options.RetryOptions.MaxDelay = TimeSpan.FromSeconds(5); options.RetryOptions.MaxRetries = 3; }); ClientsBuilder.AddClient((_, _, поставщик) => поставщик.GetService().CreateSender(appConfig.GetValue("CRMSBActivityTopicName") )).WithName("SBSender"); }); Конечная точка HTTP:
private IServiceLogger _logger; частная константная строка _commonMessage = "SMSActivityStopGetHttpListenerV1:"; частный только для чтения ServiceBusSender _sender; public SMSActivityStopGetHttpListener (регистратор IServiceLogger, IAzureClientFactory serviceBusSenderFactory) { _logger = регистратор; _sender = serviceBusSenderFactory.CreateClient("SBSender"); } [ProducesResponseType((int)HttpStatusCode.Accepted)] [ProducesResponseType((int)HttpStatusCode.InternalServerError)] [ProducesResponseType((int)HttpStatusCode.BadRequest)] [FunctionName("SMSActivityStopGetHttpListenerV1")] общедоступная асинхронная задача Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "v1/smsactivity/stop")] HttpRequest req, журнал ILogger) { //Простая логика пытаться { дождитесь _sender.SendMessageAsync(servicebusMessage); } поймать (Исключение ex) { ответ = новый HttpResponseMessage (HttpStatusCode.InternalServerError) {Содержание = новый StringContent (errorMessage, Encoding.UTF8, «application/json») }; SplunkLogger.LogExceptionToSplunk(_logger, _commonMessage, null, корреляцияId, «Ошибка API SMSActivityStop», ex.Message); } обратный ответ; } Пытался обновить пакеты. убраны всякие лишние детали из функций. Но проблема сохраняется. Перестает работать через день даже при очень небольшом количестве запросов. меньше двадцати.
Я борюсь с Azure ServiceBusSender, который выполняется в конечной точке HTTP-функции Azure. Работает нормально около суток. Затем внезапно выдается следующая ошибка, и мне придется перезапустить функцию Azure:
System.Exception: попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом по истечении определенного периода времени, или установка соединения не удалась, поскольку подключенный хост не ответил. Код ошибки: тайм-аут (ServiceCommunicationProblem). Информацию об устранении неполадок см. на странице https://aka.ms/azsdk/net/servicebus/Exc ... oubleshoot.
Если я перезапущу функции Azure, они продолжат работать около суток.
Использование Azure.Messaging.ServiceBus 7.16.1
Внедрение зависимостей:
builder.Services.AddAzureClients(clientsBuilder => { ClientsBuilder.AddServiceBusClient(appConfig.GetValue("CRMSBActivityConnectionString")) .ConfigureOptions(опции => { options.RetryOptions.Delay = TimeSpan.FromMilli Seconds(50); options.RetryOptions.MaxDelay = TimeSpan.FromSeconds(5); options.RetryOptions.MaxRetries = 3; }); ClientsBuilder.AddClient((_, _, поставщик) => поставщик.GetService().CreateSender(appConfig.GetValue("CRMSBActivityTopicName") )).WithName("SBSender"); }); Конечная точка HTTP:
private IServiceLogger _logger; частная константная строка _commonMessage = "SMSActivityStopGetHttpListenerV1:"; частный только для чтения ServiceBusSender _sender; public SMSActivityStopGetHttpListener (регистратор IServiceLogger, IAzureClientFactory serviceBusSenderFactory) { _logger = регистратор; _sender = serviceBusSenderFactory.CreateClient("SBSender"); } [ProducesResponseType((int)HttpStatusCode.Accepted)] [ProducesResponseType((int)HttpStatusCode.InternalServerError)] [ProducesResponseType((int)HttpStatusCode.BadRequest)] [FunctionName("SMSActivityStopGetHttpListenerV1")] общедоступная асинхронная задача Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "v1/smsactivity/stop")] HttpRequest req, журнал ILogger) { //Простая логика пытаться { дождитесь _sender.SendMessageAsync(servicebusMessage); } поймать (Исключение ex) { ответ = новый HttpResponseMessage (HttpStatusCode.InternalServerError) {Содержание = новый StringContent (errorMessage, Encoding.UTF8, «application/json») }; SplunkLogger.LogExceptionToSplunk(_logger, _commonMessage, null, корреляцияId, «Ошибка API SMSActivityStop», ex.Message); } обратный ответ; } Пытался обновить пакеты. убраны всякие лишние детали из функций. Но проблема сохраняется. Перестает работать через день даже при очень небольшом количестве запросов. меньше двадцати.
Мобильная версия