Я использую Microsoft Bot Framework для создания действительно простого бота с использованием LuisDialog. Однако я продолжаю получать System.Collections.Generic.KeyNotFoundException.System.Collections.Generic.KeyNotFoundException с Microsoft Bot Framework
Вот мой контроллер:
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
await Conversation.SendAsync(activity,() => new QuotesDialog());
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
Вот мой диалог:
[Serializable]
[LuisModel("MyModelIdGoesHere", "MySubscriptionKeyGoesHere")]
public class QuotesDialog : LuisDialog<object>
{
[LuisIntent("CheckQuote")]
public async Task CheckQuote(IDialogContext context, LuisResult result)
{
await context.PostAsync("Hello you!");
context.Wait(MessageReceived);
}
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
{
await context.PostAsync("I'm sorry. I didn't get that.");
context.Wait(MessageReceived);
}
}
Если я использую старую версию Bot Framework, как 3.0.0, я получаю следующее сообщение об ошибке: 500 InternalServerError { «сообщение»: «Произошла ошибка». }
Однако если я обновиться до последней стабильной версии (3.2.1), то я получаю следующее сообщение об ошибке типа «System.Collections.Generic.KeyNotFoundException»:
"Exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Microsoft.Bot.Builder.Dialogs.LuisDialog "
Полный стек трассировки здесь:
Я попытался создать новый проект на другое решение, но я получаю ту же ошибку. Я попытался установить различные версии Bot Framework через nuget, но, как я уже говорил, так или иначе, я все еще получаю сообщение об ошибке. На данный момент у меня мало опыта работы с Bot Framework, поэтому я не знаю, что еще попробовать.
Это точно, а также должно быть отражено в документах. – K48