У нас есть чат-бот, созданный с помощью шаблона 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?