Microsoft Bot Framework を使用して、LuisDialog を使用して非常に単純なボットを作成しています。ただし、System.Collections.Generic.KeyNotFoundException が引き続き発生します。
これが私のコントローラーです:
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);
}
}
3.0.0 などの古いバージョンの Bot Framework を使用すると、次のエラーが発生します: 500 InternalServerError { "メッセージ": "エラーが発生しました。" }
ただし、最新の安定バージョン (3.2.1) に更新すると、「System.Collections.Generic.KeyNotFoundException」タイプの次のエラーが発生します。
「例外: System.Collections.Generic.KeyNotFoundException: 指定されたキーがディクショナリに存在しませんでした。Microsoft.Bot.Builder.Dialogs.LuisDialog の System.Collections.Generic.Dictionary2.get_Item(TKey キー) で」
完全なスタック トレースは次のとおりです。
別のソリューションで新しいプロジェクトを作成しようとしましたが、同じエラーが発生します。nuget を使用してさまざまなバージョンの Bot Framework をインストールしようとしましたが、前述のように、何らかの方法でエラーが発生します。これまでのところ、Bot Framework の経験がほとんどないため、他に何を試せばよいかわかりません。