为什么 BotConnector 行为与模拟器不同?
Why BotConnector behavior is different from the emulator?
我正在玩最近发布的 Microsoft Bot Framework。
我做了以下步骤:
使用 IDialog (Echo Bot sample) 创建了一个简单的机器人,使用模拟器进行了测试,部署到 Azure 应用服务并在 dev.botframework.com 注册了它。一切正常。
更新了机器人以使用 LuisDialog 与 Luis 一起工作,并添加了 [LuisModel] 和 [LuisIntent] 属性(基于 Alarm Bot sample)并将其部署到云端。
之后我有一个奇怪的行为:
本地和云部署都可以使用模拟器按预期工作,Luis 部分运行良好。
当从 BotConnector 测试连接触发同一个机器人时,它不会绑定 Luis,而是进入 MessageReceivedAsync。
我检查了 bot 路径、app id 和密钥,重新部署了 AppService 并重新注册了 bot,我仍然得到相同的行为。
我的 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 和仿真器中的测试连接是否指向相同的端点,预计总是 return 相同的结果?
或者,我错过了什么吗?
是的,Bot Connector 和模拟器发送相同的消息。
您的代码是否 returns 相同的值取决于您处理消息的方式、调用环境(通过 HTTP 从本地主机调用而不是通过 HTTPS 远程调用)和托管环境(通常是调试位在IIS Express 与 IIS 中的发布位,适用于 C# 应用程序)。
不再适用。较新的 1.1 版本,BTW 引入了重大更改,在同一代码库上工作起来就像一个魅力。
我正在玩最近发布的 Microsoft Bot Framework。 我做了以下步骤:
使用 IDialog (Echo Bot sample) 创建了一个简单的机器人,使用模拟器进行了测试,部署到 Azure 应用服务并在 dev.botframework.com 注册了它。一切正常。
更新了机器人以使用 LuisDialog 与 Luis 一起工作,并添加了 [LuisModel] 和 [LuisIntent] 属性(基于 Alarm Bot sample)并将其部署到云端。
之后我有一个奇怪的行为:
本地和云部署都可以使用模拟器按预期工作,Luis 部分运行良好。
当从 BotConnector 测试连接触发同一个机器人时,它不会绑定 Luis,而是进入 MessageReceivedAsync。
我检查了 bot 路径、app id 和密钥,重新部署了 AppService 并重新注册了 bot,我仍然得到相同的行为。
我的 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 和仿真器中的测试连接是否指向相同的端点,预计总是 return 相同的结果? 或者,我错过了什么吗?
是的,Bot Connector 和模拟器发送相同的消息。
您的代码是否 returns 相同的值取决于您处理消息的方式、调用环境(通过 HTTP 从本地主机调用而不是通过 HTTPS 远程调用)和托管环境(通常是调试位在IIS Express 与 IIS 中的发布位,适用于 C# 应用程序)。
不再适用。较新的 1.1 版本,BTW 引入了重大更改,在同一代码库上工作起来就像一个魅力。