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

在Azure中测试bot应用程序未响应,azure,botframework,Azure,Botframework,我正在使用Azure Enterprise subscription,并使用该订阅创建了一个聊天机器人。但目前,我在使用它聊天时遇到了麻烦。bot是使用visualstudio和bot框架创建的,并发布到Azure。是我的消息传递端点URL。我为同一个应用程序注册了bot通道,并使用bot api端点和api/消息作为它的端点。已使用生成的应用程序ID和密码更新web配置文件,并已发布。但当我尝试在Azure中使用网络聊天进行测试时,它抛出了“无法发送重试”。原因是什么?Jobin, 我能够将b

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

Jobin, 我能够将bot模拟器从本地pc连接到您的端点,显然不需要您的appid和app密码。我发送了一个“你好”,并收到了登录卡的回复。因此,机器人似乎工作正常。可能在您编辑web.config后应用程序服务仍在重新启动? 而且,在信息有限的情况下,很难帮助诊断此类问题。

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

var store=new TableBotDataStore(ConfigurationManager.ConnectionStrings[“StorageConnectionString”].ConnectionString);
Conversation.UpdateContainer(
生成器=>
{
builder.Register(c=>store)
.Keyed(AzureModule.Key_数据存储)
.AsSelf()
.SingleInstance();
builder.Register(c=>新的CachingBotDataStore(store,
cachingbotdatastoreconsistency策略
.ETAGBASED(一致性)
.As()
.AsSelf()
.InstancePerLifetimeScope();
});

您能否进一步阐明“尝试测试”的含义?你正在使用Azure的“网络聊天测试”功能吗?你把你的机器人放在网页上测试了吗?当开发人员控制台显示“无法发送”时,会出现什么情况?你正在尝试使用Ngrok和机器人模拟器吗?我尝试使用Azure的“网络聊天测试”功能。我没有尝试使用ngrok,因为由于安全原因,它在公司被阻止。在global.asax中,我无法指定任何状态来存储对话历史记录。这是在尝试azure聊天测试时导致错误的原因。而在本地,它不需要任何存储来保存状态数据。
  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();
   });