2016-09-12 63 views
3

因此,我创建了一个chatbot,它在本地运行时可以在Microsoft Bot Framework Channel Emulator上完美地工作。微软机器人在本地工作,但没有发布时

然而,当我发布它,当我测试它的电报,我得到错误500:“POST到pbot2失败:POST到机器人的端点失败,HTTP状态500”。

我绝对没有线索,我可能出现了问题。通常,如果它在本地工作而不是在发布时出现证书问题,但我试图在Microsoft Bot网站上测试与我的机器人的连接,并且它给了我:端点授权成功。所以凭证绝对不是问题。

谷歌搜索给我的结果问题是与System.IdentityModel.Tokens.jwt向后兼容的问题,但我没有更新该包,所以不应该是一个问题。

在这一点上我已经跑出去的想法,将感谢任何帮助!提前致谢。

+0

您使用的是https端点还是http端点? –

+0

我使用了https端点。 Bot框架强制执行此操作。 – dmred

回答

1

没有更多的上下文我可能没有太大的帮助;但也有一些工具可以使用:

1)如果挂接在BOT框架门户应用程序的见解,我们会记录我们从你的机器人看到到应用程序的见解例外。每月的头几万笔交易都是免费的,用于开发时间调试,这是必须的。

2)500是内部服务器错误。我假设你的机器人被设置为除了“消息”以外的其他活动类型?您将从渠道获取您不会在模拟器中自动查看的对话更新活动消息。

3)你可以在你的云终端点模拟器和验证有作为,并经常得到比例外您会在聊天频道的详细信息。

让我们知道你在找什么。

+0

我也收到500错误。随着“Hello World”教程一起跟随;我只使用模拟器,但是当我将它指向Azure站点URL时,出现“500 InternalServerError {”message“:”发生了错误。“} - 您能否在#1上提供更多细节? – BrainSlugs83

+0

感谢您的提示,将对其进行测试并回复您 – dmred

+0

RE:Application Insights;在Azure门户中,您可以调配Azure Application Insights实例(https:///azure.microsoft.com/en-us/services/application-insights/),它本质上是一个记录的终点。 当供应,服务有一个仪表键,可以提供通过门户机器人框架(上编辑页面),然后我们将事件发送到洞察实例,以便分析。 有一个即将发布的博客文章,我还没有写出来。 –

0

您正在获取未捕获的异常;我所做的是将所有内容都包含在MessageController.cs的Post方法中的try ... catch中,并且在捕获异常时,将异常的Message和StackTrace发送到聊天中。通常前几行将包含一般错误描述和大部分时间行号。

catch (Exception ex) 
     { 
      string error = Emoji.Blush; 

      //for debugging in bot emulator, also output stack trace 
      if (activity.ChannelId == "emulator" 
       || activity.ChannelId == "facebook" //uncomment this line to get stack traces on facebook too 
       ) 
      { 
       error += ex.Message + ex.StackTrace; 
      } 

      //create response activity 
      Activity response = activity.CreateReply(error); 

      //post back to user 
      ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); 
      await connector.Conversations.ReplyToActivityAsync(response); 

     } 
相关问题