本地主机上的Botbuilder机器人没有响应,但可在Azure中使用

时间:2018-08-08 22:25:16

标签: node.js azure botframework azure-table-storage

我试图遵循this教程,该教程要求我下载机器人代码,在本地运行它,并使用Botframework仿真器对其进行测试。当我在模拟器中聊天时,它没有返回任何响应。

当我使用Azure的网络聊天模拟器时,效果很好!

我使用these指令在Azure上设置了漫游器,因此所有必需的资源都已启动并自动运行。当我聊天时,节点控制台将显示以下内容:

  

警告:ChatConnector:接收-模拟器在未启用安全性的情况下运行。   logger.js:24   ChatConnector:收到消息。

有时,它会出错:

  

错误:无法初始化azure表客户端。错误:错误:无法在Azure表上执行请求的操作。消息:连接ECONNREFUSED 127.0.0.1:10002。错误代码:ECONNREFUSED   UniversalBot.js:548

我不知道这是相关的还是单独的问题。

2 个答案:

答案 0 :(得分:1)

  

警告:ChatConnector:接收-模拟器在未启用安全性的情况下运行。 logger.js:24 ChatConnector:收到消息。

这只是一个警告,可能是由于使用http URL:http://localhost:3978/api/messages作为模拟器中的消息终结点而引起的。

  

错误:无法初始化azure表客户端。错误:错误:无法在Azure表上执行请求的操作。

如果您检查代码,则会发现它使用Azure Table存储来存储和管理机器人的状态数据:

var tableName = 'botdata';
var azureTableClient = new botbuilder_azure.AzureTableClient(tableName, process.env['AzureWebJobsStorage']);
var tableStorage = new botbuilder_azure.AzureBotStorage({ gzipData: false }, azureTableClient);

// Create your bot with a function to receive messages from the user
var bot = new builder.UniversalBot(connector);
bot.set('storage', tableStorage);

该代码将使用'AzureWebJobsStorage'连接字符串来启动 azureTableClient ,如果您没有为'AzureWebJobsStorage'提供连接字符串,则会抛出上述错误。

请尝试为'AzureWebJobsStorage'设置环境变量或直接在代码中指定连接字符串。

var azureTableClient = new botbuilder_azure.AzureTableClient(tableName, '{your_storage_connection_string_here}');

答案 1 :(得分:0)

请您尝试this。我认为它不起作用,因为您的端点和名称不正确