【问题标题】:Bot works in Bot Framework Emulator on local computer, but not after it's deployed to Microsoft Azure - HTTP status code NotFoundBot 在本地计算机上的 Bot Framework Emulator 中运行,但在部署到 Microsoft Azure 后无法运行 - HTTP 状态代码 NotFound
【发布时间】:2019-05-21 02:33:52
【问题描述】:

现在,我正在测试在 Virtual Studio Community 2019 中启动机器人项目所需的步骤,在 Bot Framework Emulator (V4) 中测试机器人>,然后将该机器人部署到 Microsoft Azure。

现在,我正在测试 Virtual Studio Community 2019 中提供的简单 Echo Bot 模板。当我在 Virtual Studio Community 2019 中运行它时,使用提供的“localhost”URL 在 Bot Framework Emulator 中打开该机器人,并对其进行测试在模拟器的“实时聊天”窗口中,它运行良好

但是,在我使用 Azure CLI(命令行工具) 完成部署此机器人的过程后,我发现当我转到“在网络聊天中测试”时,该机器人没有响应" 用于以 BotID 命名的 Bot Channels Registration 资源。当我查看频道页面时,我看到以下错误:“向您的机器人发送此消息时出错:HTTP 状态代码未找到。”

我已经尝试为机器人开启“始终开启”,启用 Application Insights(ASP.NET、ASP.NET Core),并将应用程序洞察服务与机器人集成。

按照问题评论部分中“mdrichardson - MSFT”的要求,我在 https://"botname".scm.azurewebsites.net/dev/wwwroot/ 附上了机器人文件的图像。

Bot File Directory

我应该如何解决这个问题?

【问题讨论】:

  • 你能发布你用来部署机器人的步骤吗?他们是these ones 吗?我的猜测是您在运行az webapp deployment... 之前没有正确压缩本地代码。您能否截取此处列出的文件:https:/<yourEndpoint>.scm.azurewebsites.net/dev/wwwroot/
  • 嗨,mdrichardson - MSFT。感谢您帮助解决这个问题。我在原始问题中添加了一个指向机器人文件图像的 URL。你有没有看到我应该根据它的外观快速做出改变?如果看起来正确,我应该尝试哪些其他方法?

标签: visual-studio azure botframework


【解决方案1】:

您好像不见了this step

az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "MyBot.csproj"

这会创建一个.deployment 文件,该文件会在您部署时上传。上传后,它会告诉 Kudu/Azure 构建机器人。它应该会导致您的目录包含一堆 .dll 文件,看起来更像这样:

您可能没有错过该步骤,在这种情况下,您只需在您的code.zip 中包含.deployment 文件,然后重新运行:

az webapp deployment source config-zip --resource-group "<yourGroup>" --name "<yourBot>" --src "code.zip"

或者...

由于您使用的是 Visual Studio 模板,因此您可以:

  1. 在 Visual Studio 中右键单击您的项目,转到发布

  1. 停留在“应用服务”选项卡上,单击“发布”,然后执行部署步骤。

【讨论】:

  • 嗨,mdrichardson - MSFT。我遵循了有关 Azure CLI 的建议,现在我的文件设置看起来与屏幕截图中的文件设置相同。但是,我仍然无法在“网络聊天测试”中工作。现在我收到此错误:“向您的机器人发送此消息时出错:HTTP 状态代码 InternalServerError。”
  • 另外,我尝试从 Virtual Studio 2019 发布。它看起来与您在按“发布”后使用的版本大不相同。我收到一条很长的错误消息(此评论太长),将我引至此 URL:docs.microsoft.com/en-us/iis/publish/troubleshooting-web-deploy/…
  • "HTTP 状态代码 InternalServerError" 通常意味着您的机器人代码已损坏,不知何故,无法运行。您是否在未经任何修改的情况下使用 EchoBot?发布错误似乎很奇怪。我以前从未遇到过。您收到了网页上列出的哪些错误?我经常发现转到https://&lt;yourBot&gt;.scm.azurewebsites.net/dev/wwwroot/:vs.output 并在单击“运行”(左侧)以及在网络聊天中使用“测试”后查找错误很有帮助。
  • 您的 AppId 和 Pass 在应用服务 > 配置中是否正确?有时,当部署失败时,我会从头开始 the deployment docs 进行新的部署。很多时候,我发现我错过了一些小问题,这些问题比重新开始部署花费的时间要长。
  • @DataExaminer555 见上面的 cmets。忘了如果我不包含@you,它不会通知你。
猜你喜欢
  • 2019-11-09
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多