Botframework 有没有办法在没有Ngrok的情况下测试本地托管的bot?

Botframework 有没有办法在没有Ngrok的情况下测试本地托管的bot?,botframework,Botframework,我开发了一个MicrosoftBotFramework机器人,我想在不使用ngrok的情况下,在本地的BotFramework模拟器中测试它。有办法吗 在当前环境中,我面临与代理相关的问题,由于公司政策,我无法在笔记本电脑中运行“ngrok” 谢谢你的提示 看一看 Bot Framework Emulator是一个桌面应用程序,允许Bot开发人员测试和调试使用Bot Framework SDK构建的Bot。您可以使用Bot Framework Emulator测试在您的计算机上本地运行的Bot,

我开发了一个MicrosoftBotFramework机器人,我想在不使用ngrok的情况下,在本地的BotFramework模拟器中测试它。有办法吗

在当前环境中,我面临与代理相关的问题,由于公司政策,我无法在笔记本电脑中运行“ngrok”

谢谢你的提示

看一看

Bot Framework Emulator是一个桌面应用程序,允许Bot开发人员测试和调试使用Bot Framework SDK构建的Bot。您可以使用Bot Framework Emulator测试在您的计算机上本地运行的Bot,或者通过隧道连接到远程运行的Bot


我猜您可能已经在使用Bot Framework Emulator,它会为您提供许多警告和设置来配置ngrok。但这不是本地测试所必需的!ngrok在internet上公开您的本地bot。除非您的bot组件无法在本地访问您的bot,或者您无法通过代理获取请求,否则在没有ngrok的情况下进行测试是可以的

当您在本地进行测试时,您只需要在Emulator中有一个端点URL=的通用端点。我将我的命名为“本地机器人”,因为我对所有机器人测试使用相同的配置请勿输入应用程序ID或密码。这就是让我绊倒了一阵子的原因;当你在本地时,你不需要这样做,如果你不使用ngrok,它实际上会导致你的机器人无法工作


现在,您可以正常地在本地启动bot(例如,对于nodejs bot,
node index.js
)。如果您支持代理,则可能还需要考虑这些设置。控制台中的代理设置将不起作用。如果可以的话,我建议将其设置在.env文件中,这样代码就不会受到影响。我不知道如何为C#实现这一点,但对于nodejs,它是
HTTPS#u代理=http://proxy.company.com:port
。我发现设置HTTP代理是不必要的,实际上会破坏我的机器人程序。

虽然Emulator是测试本地机器人程序的一个很好的工具,但它作为自己的通道,因此无法可靠地再现特定于通道的行为。使用ngrok,您可以在任何通道上调试本地运行的bot。如果您希望另一个隧道服务提供相同的功能,请查看Azure中继和服务总线中继Util:


根据你最新的问题,我认为服务巴士不能解决你的问题。您可能想在Emulator中使用它。

我将专门回答您问题的这一部分

我面临与代理相关的问题,由于公司政策,我无法在笔记本电脑中运行“ngrok”

因此,如果他们正在阻止代理,不幸的是,这包括了ngrok提供的代理级设施,那么

答案是一个简单的否定。你不能,用最简单的形式

我的解决方案(不是技术性的,而是务实的,想象一下我会在你的情况下做什么)是与之联系,并要求他们取消限制

或者,另一种解决方案是在另一台计算机上运行bot,只是为了测试,同时将代码和开发保留在公司计算机上


同样,这不是一个技术解决方案,而是一个务实的解决方案

你能告诉我们你为什么不想使用ngrok吗?谢谢你,米克。我忘了在我的问题中提到Bot框架模拟器。我已经在用了。我修改了我的问题并添加了必要的信息。太好了,对你有用吗?如果您遇到其他问题,请告诉我,如果这个答案对您有效,请接受!