在Azure中测试bot应用程序无响应

时间:2018-09-10 11:21:15

标签: azure botframework

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

2 个答案:

答案 0 :(得分:1)

乔宾, 很明显,我能够将机器人仿真器从本地PC连接到您的端点https://pihitsupportbot001.azurewebsites.net/api/message,而无需输入您的appid和应用密码。我发送了一个“ hello”并收到了登录卡的回复。因此,该机器人似乎工作正常。在您编辑web.config之后,也许应用程序服务仍在重新启动? 另外,很难用有限的信息来帮助诊断这类问题。 enter image description here

答案 1 :(得分:0)

该错误是由于以下原因造成的:在global.asax中,我没有指定任何状态来存储对话历史记录。早期,Microsoft一直为使用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();
   });