我正在玩最近发布的 Microsoft Bot Framework。我做了以下步骤:
使用 IDialog(Echo Bot 示例)创建了一个简单的机器人,使用模拟器进行了测试,部署到 Azure 应用服务并在 dev.botframework.com 上注册了它。一切正常。
使用 LuisDialog 更新了机器人以与 Luis 一起使用,并添加了 [LuisModel] 和 [LuisIntent] 属性(基于Alarm Bot 示例)并将其部署到云端。
之后我有一个奇怪的行为:
本地和云部署都使用模拟器按预期工作,Luis 部分运行良好。
当从 BotConnector 测试连接触发同一个机器人时,它不会绑定 Luis,而是进入 MessageReceivedAsync。
我检查了机器人路径、应用程序 ID 和密钥,重新部署了 AppService 并重新注册了机器人,但我仍然得到相同的行为。
我的 ReceiveMessageAsync 如下所示:
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> result)
{
var message = await result;
await context.PostAsync("You have just said: " + message.Text);
context.Wait(MessageReceivedAsync);
}
我不删除它的原因是因为没有它测试连接将停止工作。另一方面,模拟器运行良好。
BotConnector 中的测试连接和指向同一端点的仿真器是否总是返回相同的结果?或者,我错过了什么?