当我从Visual Studio将我的机器人发布到Azure并在网络聊天中尝试时,它说无法发送消息。在本地运行该机器人,一切正常。
当尝试与Azure上的端点聊天时,模拟器报告HTTP 500错误。
答案 0 :(得分:1)
在评论部分进行了一些讨论之后,我已经从您提供的存储库中提取了您的代码。与您所说的不同,它在启动时也会因HTTP 500在本地崩溃。阅读日志给我带来了web.config
的问题。
这将导致我找到以下解决方案:
您的代码库包含一个web.config
文件,该文件不属于该文件。这是一个.net核心应用程序,因此不应依赖于web.config
,而应使用appsettings.json。部署此web.config
时,运行时将尝试加载某些内容并因HTTP 500而崩溃。
不确定此web.config
的来源,但我认为是从以前的部署或您的测试中得出的。
我已向您发送了PR,只需删除此web.config
并将您的机器人部署到Azure。
效果很好:
在删除web.config
后从Visual Studio中发布文件时,请确保已选择在目标位置删除其他文件。通过这种方式,您可以确保不会意外地将孤儿web.config
留在那里。
答案 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