将机器人发布到Azure

时间:2019-04-08 16:50:16

标签: c# azure botframework

当我从Visual Studio将我的机器人发布到Azure并在网络聊天中尝试时,它说无法发送消息。在本地运行该机器人,一切正常。

当尝试与Azure上的端点聊天时,模拟器报告HTTP 500错误。

3 个答案:

答案 0 :(得分:1)

在评论部分进行了一些讨论之后,我已经从您提供的存储库中提取了您的代码。与您所说的不同,它在启动时也会因HTTP 500在本地崩溃。阅读日志给我带来了web.config的问题。

这将导致我找到以下解决方案:

您的代码库包含一个web.config文件,该文件不属于该文件。这是一个.net核心应用程序,因此不应依赖于web.config,而应使用appsettings.json。部署此web.config时,运行时将尝试加载某些内容并因HTTP 500而崩溃。

不确定此web.config的来源,但我认为是从以前的部署或您的测试中得出的。 我已向您发送了PR,只需删除此web.config并将您的机器人部署到Azure。

效果很好:

Azure deployed

在删除web.config后从Visual Studio中发布文件时,请确保已选择在目标位置删除其他文件。通过这种方式,您可以确保不会意外地将孤儿web.config留在那里。
VS Studio publish settings

答案 1 :(得分:0)

尽管您的问题缺少详细的信息,但根据经验,我知道大多数人在天蓝色地部署bot时会忘记包含bot状态。

Bot State Service retired于2018年3月31日发布。 因此,当在Azure上为您提供HTTP 500时,网络上的大多数示例都缺少状态存储,而HTTP可以在本地运行。

有关解决方案,请参见我最近关于堆栈溢出的答案here

答案 2 :(得分:-1)

Http 500错误是非常普遍的内部服务器错误。您可以添加一些异常处理逻辑并将其登录到Application Insights。

您可以参考文档 https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-trace-logs