首页 文章

如何在Bot Framework Channel Emulator中将错误解决为“500内部服务器错误”?

提问于
浏览
7

我正在研究Bot框架技术,最近微软宣布了bot的新版本(V3) . 我已经开发了使用旧版本的机器人,现在我正在尝试将我的机器人升级到更新的版本 . 为了一切正常,但在将我的机器人发布到azure之后,然后通过使用我试图在机器人框架通道模拟器(3.0.0.54)中测试的发布URL,它总是给出“500,内部服务器错误” . 但是当我将skype Channels 添加到我的机器人时它会正常工作 .

唯一的问题是当我在机器人框架通道模拟器中使用我的机器人应用程序的已发布URL进行测试时,我只得到错误为“内部服务器错误” .

我认为最新版本的bot框架通道模拟器可能存在问题

7 回答

  • 0

    ngrok http -host-header =重写9000

    screenshot

    • 如屏幕截图复制 Forwarding URL 中所示,使用https并将其粘贴到模拟器网址中

    • 模拟器端口应为9000,模拟器URL应包含ngrok forwarding Https URL

    注意:ngrok应该处于运行状态 . 如果你在下次尝试时得到相同的500错误,请从步骤1开始 . 更多参考.https // docs.botframework.com / en-us / tools / bot-framework-emulator / #navtitle

  • 0

    我发现除了控制器中的Post之外,单个 public 方法会使Bot Framework抛出500个InternalServerError . 只需在您的控制器中保留 private 和公共Post方法即可修复它 .

  • 1

    熟悉调试,你只是不要禁用appid和密码,而是让它们空白并重建相同,你将能够通过模拟器调试保持如下给出

    不要只是禁用BotId,AppID,密码而是将它们留空,如下所示

    <add key="BotId" value="" />
    <add key="MicrosoftAppId" value="" />
    <add key="MicrosoftAppPassword" value="" />
    
  • 4

    ngrok解决方案对我不起作用 . 我刚评论了botAuthentication,然后它在本地为我工作 .

    //[BotAuthentication]
        public class MessagesController : ApiController
        {
    
  • 2

    他们刚刚发布了该框架的更新版本(3.0.1),该版本解决了3.0.0引入的一些问题 . 尝试更新到3.0.1并查看是否可以解决您的问题(它修复了我的问题) . source

    您可能还需要按照this tutorial并使用ngrok来允许您从模拟器访问已发布的聊天机器人 . 该教程中有一个屏幕截图,显示了模拟器中使用的BotId,它不是必需的,因此您可以省略它 .

  • 0

    开发者在this thread上发布了答案 .

    基本上你可以输入'disable'来禁用AppId / AppPassword

  • 1

    似乎如果您将机器人部署到 Cloud 并尝试从模拟器进行测试,则会出现此错误 . 模拟器似乎有两种情况:

    1-已禁用安全性的Localhost(删除appid和app密码)

    启用安全性的2- localhost(添加appid和app密码)

    两个 endpoints 都只通过http,因为它是localhost . 如果部署到 Cloud ,则可以在Bot Portal上提供的模拟器中对其进行测试 . 确保托管机器人的 endpoints 启用了https .

    我按照此故障排除指南中的步骤操作,并为我修复了它:https://docs.microsoft.com/en-us/bot-framework/troubleshoot-authentication-problems

    我不明白究竟是什么导致了这个问题 . 我注意到的是:桌面模拟器仅适用于localhost .

相关问题