发送失败 activity:bot 返回错误 502 404

Failed to send activity: bot returned an error 502 404

我正在尝试部署 ms teams auth bot to azure. The bot gives a welcome message when I tested it using the bot framework emulator. Then I ran these steps 以将我的机器人部署到 Azure。在部署步骤中,我在整个过程中使用了相同的应用程序 ID 和密码。然后我在 azure 上测试了它,但它失败了:

我查看浏览器的网络请求,我看到了这个:

HTTP POST: https://webchat.botframework.com/v3/directline/conversations/JYtg14OvcjS7FiNwCMXzH1-g/activities

回复:

{
  "error": {
    "code": "BotError",
    "message": "Failed to send activity: bot returned an error"
  },
  "httpStatusCode": 404
}

我流式传输了我的应用程序日志,它给了我一个很大的 HTML 响应,您可以看到 here。但它只是一个 404 页面响应。

我试图在我的机器人模拟器中 运行 这个,指向生产中的机器人,它也给出了 404 响应:

编辑:

  1. 我刚刚尝试 redeploy my bot 但在测试我的机器人时得到了相同的结果。
  2. 在 运行 全部 deployment steps 之后,我再也没有 web.config 文件了。虽然在我的机器人模拟器本地测试它工作正常。
  3. 这是我的资源组的屏幕截图,其中有 3 个资源:
  4. 这是 运行 完成 pre-deploy command. It doesn't generate a web.config file, but it generates a .deployment file:
  5. 后的屏幕截图
  6. 应用 ID 在 Azure 的应用注册门户中是相同的,在我的 appsettings.json 文件中是相同的,在我 运行 deployment command.[=62 中也是相同的=]

编辑 2:

  1. 这是我压缩项目的方式:
  2. 在 Azure 上,我无法查看我的代码,但我记得我以前曾经这样做过。可能是因为在 Azure 上,我只有 Bot Channels Registration 而没有 Web App Bot。有问题吗?

编辑 3:

  1. 我注意到我在压缩内容时没有包含.deployment文件。 (文件浏览器隐藏了文件。)所以现在我将它包含在我的压缩内容中并再次由机器人重新部署。 (不幸的是,该机器人的行为仍然相同。)
  2. 以下是/dev/wwwroot/的新内容:
  3. 这是我的应用程序注册(我尝试切换两种帐户类型而不是通过命令行重新创建它,仍然是相同的机器人行为):
  4. .deployment 文件已压缩。我的 mac 只是没有显示出来。我更新了屏幕截图以显示上面的 .deployment 文件。

OPs 问题最终是他们需要让所有帐户(包括个人帐户)都可以使用他们的应用程序注册。为此,请遵循 these steps

我会为后代保留答案,但如果您运行正在处理这个问题,我的评论提供了很好的故障排除步骤。


啊哈!问题是 this step。您需要压缩项目文件夹的内容,而不是文件夹本身。

这个:

而不是这个:

部署时,您的文件夹结构将如下所示:

您不是第一个 运行 参与其中的人。我 created a PR to clarify this。如果您认为我所做的更改应该说点别的,请告诉我。

旁注:web.config 是在部署时创建的。我的评论有误。