Развернутый на Azure чатбот внезапно вышел из строя - PullRequest
1 голос
/ 17 октября 2019

У нас есть чат-бот, созданный с помощью шаблона MS Virtual Assistant (C #), развернутого на платформе Azure для корпоративных целей. У нас постоянно возникают проблемы с startWebsockAsync в BotController и мы постоянно получаем 500. И бот будет зависать случайным образом во время разговора.

После того, как мы развернули нашего чат-бота на платформе Azure, мы заметили http 500 из Get Bot / startWebsocketAsync. Это случается довольно часто, и мы не могли найти причину для этого. Мы поместили это await _webSocketEnabledHttpAdapter.ProcessAsync(Request, Response, _bot); в блок try и все время получали одну и ту же ошибку. Кроме того, наш чат-чат будет случайным образом отключаться во время разговоров с пользователями. Связано ли это с ошибкой, которую мы имеем на startWebsocketAsync?

Вот как выглядит startWebsocketAsync внутри botController

[HttpGet]
    public async Task StartWebSocketAsync()
    {
            // Delegate the processing of the Websocket Get request to the adapter.
            // The adapter will invoke the bot.
            try
            {
                await _webSocketEnabledHttpAdapter.ProcessAsync(Request, Response, _bot);
            }
            catch (Exception e)
            {
            ...
            ...
            }
        }
    }

Ошибка, с которой мы столкнулись на Get Bot/startWebsocketAsync

System.ArgumentNullException: Value cannot be null.Parameter name: activity   
at Microsoft.Bot.Builder.BotFrameworkAdapter.ProcessActivityAsync(String authHeader, Activity activity, BotCallbackHandler callback, CancellationToken cancellationToken)   
at Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter.ProcessAsync(HttpRequest httpRequest, HttpResponse httpResponse, IBot bot, CancellationToken cancellationToken)   
at Microsoft.Bot.Protocol.StreamingExtensions.NetCore.WebSocketEnabledHttpAdapter.ProcessAsync(HttpRequest httpRequest, HttpResponse httpResponse, IBot bot, CancellationToken cancellationToken)   
at XXBOT.Controllers.BotController.StartWebSocketAsync() 

Интересно, как мы избавимся от 500, когда разговариваем с ботом? И почему наш бот неожиданно отключается во время разговоров.

Вот скриншот с лазурного портала о проблеме smba.trafficmanager. Каким-то образом «отмененное» действие обнаружилось случайно. Не уверен, в чем причина. Это связано с командами MS?

enter image description here

...