【问题标题】:Testing bot application in Azure not responding在 Azure 中测试机器人应用程序没有响应
【发布时间】:2018-09-10 11:21:15
【问题描述】:

我正在使用 Azure Enterprise 订阅并使用它创建了一个聊天机器人。但目前,我无法使用它聊天。该机器人是使用 Visual Studio 使用 Bot 框架创建的,并发布到 Azure。 https://pihitsupportbot001.azurewebsites.net/ 是我的消息传递端点 URL。我为同一个应用程序进行了机器人通道注册,并使用带有 api/messages 的机器人 api 端点作为它的端点。使用生成的应用 ID 和密码更新 Web 配置文件并发布。但是当我尝试在 Azure 中使用网络聊天进行测试时,它会抛出“无法发送重试”。会是什么原因?

【问题讨论】:

  • 您能否进一步阐明“尝试测试”的含义?您是否在使用 Azure 的“网络聊天测试”功能?您是否将您的机器人放在网页上并进行测试?当开发控制台显示“无法发送”时,会出现什么情况?您是否尝试使用 Ngrok 和 Bot Emulator?
  • 我尝试使用 Azure 的“网络聊天测试”功能。由于安全原因,我没有尝试使用 ngrok,因为它在公司被阻止。

标签: azure botframework


【解决方案1】:

工作, 我能够将机器人模拟器从我的本地 PC 连接到您的端点 https://pihitsupportbot001.azurewebsites.net/api/message,显然无需您的 appid 和 app 密码。我发送了一个“你好”并收到了登录卡回复。因此,该机器人似乎工作正常。编辑 web.config 后,应用服务可能仍在重新启动? 此外,很难用有限的信息帮助诊断这些类型的问题。

【讨论】:

  • 在 global.asax 中,我指定了任何状态来存储对话历史记录。尝试天蓝色聊天测试时,这导致了错误。在本地时,它不需要任何存储来保存状态数据。
【解决方案2】:

错误是由于在 global.asax 中我没有指定任何状态来存储对话历史记录。早些时候,微软一直在为使用 Node.js 或 .NET SDK 构建的机器人提供默认状态服务。状态服务用于在对话上下文中存储和检索用户和对话数据。但实际上在本地使用模拟器甚至在 IIS 中运行时,它并不需要它。下面是文档。

Bot State Service will soon be retired on March 31st, 2018

  var store = new TableBotDataStore(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
    Conversation.UpdateContainer(
   builder =>
   {
       builder.Register(c => store)
                 .Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
                 .AsSelf()
                 .SingleInstance();

       builder.Register(c => new CachingBotDataStore(store,
                  CachingBotDataStoreConsistencyPolicy
                  .ETagBasedConsistency))
                  .As<IBotDataStore<BotData>>()
                  .AsSelf()
                  .InstancePerLifetimeScope();
   });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2021-08-18
    • 2020-08-09
    • 2021-11-03
    • 2021-01-06
    相关资源
    最近更新 更多