发送失败 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 响应:
编辑:
- 我刚刚尝试 redeploy my bot 但在测试我的机器人时得到了相同的结果。
- 在 运行 全部 deployment steps 之后,我再也没有 web.config 文件了。虽然在我的机器人模拟器本地测试它工作正常。
- 这是我的资源组的屏幕截图,其中有 3 个资源:
- 这是 运行 完成 pre-deploy command. It doesn't generate a web.config file, but it generates a .deployment file:
后的屏幕截图
- 应用 ID 在 Azure 的应用注册门户中是相同的,在我的 appsettings.json 文件中是相同的,在我 运行 deployment command.[=62 中也是相同的=]
编辑 2:
- 这是我压缩项目的方式:
- 在 Azure 上,我无法查看我的代码,但我记得我以前曾经这样做过。可能是因为在 Azure 上,我只有 Bot Channels Registration 而没有 Web App Bot。有问题吗?
编辑 3:
- 我注意到我在压缩内容时没有包含
.deployment
文件。 (文件浏览器隐藏了文件。)所以现在我将它包含在我的压缩内容中并再次由机器人重新部署。 (不幸的是,该机器人的行为仍然相同。)
- 以下是/dev/wwwroot/的新内容:
- 这是我的应用程序注册(我尝试切换两种帐户类型而不是通过命令行重新创建它,仍然是相同的机器人行为):
.deployment
文件已压缩。我的 mac 只是没有显示出来。我更新了屏幕截图以显示上面的 .deployment 文件。
OPs 问题最终是他们需要让所有帐户(包括个人帐户)都可以使用他们的应用程序注册。为此,请遵循 these steps
我会为后代保留答案,但如果您运行正在处理这个问题,我的评论提供了很好的故障排除步骤。
啊哈!问题是 this step。您需要压缩项目文件夹的内容,而不是文件夹本身。
这个:
而不是这个:
部署时,您的文件夹结构将如下所示:
您不是第一个 运行 参与其中的人。我 created a PR to clarify this。如果您认为我所做的更改应该说点别的,请告诉我。
旁注:web.config
是在部署时创建的。我的评论有误。
我正在尝试部署 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 响应:
编辑:
- 我刚刚尝试 redeploy my bot 但在测试我的机器人时得到了相同的结果。
- 在 运行 全部 deployment steps 之后,我再也没有 web.config 文件了。虽然在我的机器人模拟器本地测试它工作正常。
- 这是我的资源组的屏幕截图,其中有 3 个资源:
- 这是 运行 完成 pre-deploy command. It doesn't generate a web.config file, but it generates a .deployment file:
- 应用 ID 在 Azure 的应用注册门户中是相同的,在我的 appsettings.json 文件中是相同的,在我 运行 deployment command.[=62 中也是相同的=]
编辑 2:
- 这是我压缩项目的方式:
- 在 Azure 上,我无法查看我的代码,但我记得我以前曾经这样做过。可能是因为在 Azure 上,我只有 Bot Channels Registration 而没有 Web App Bot。有问题吗?
编辑 3:
- 我注意到我在压缩内容时没有包含
.deployment
文件。 (文件浏览器隐藏了文件。)所以现在我将它包含在我的压缩内容中并再次由机器人重新部署。 (不幸的是,该机器人的行为仍然相同。) - 以下是/dev/wwwroot/的新内容:
- 这是我的应用程序注册(我尝试切换两种帐户类型而不是通过命令行重新创建它,仍然是相同的机器人行为):
.deployment
文件已压缩。我的 mac 只是没有显示出来。我更新了屏幕截图以显示上面的 .deployment 文件。
OPs 问题最终是他们需要让所有帐户(包括个人帐户)都可以使用他们的应用程序注册。为此,请遵循 these steps
我会为后代保留答案,但如果您运行正在处理这个问题,我的评论提供了很好的故障排除步骤。
啊哈!问题是 this step。您需要压缩项目文件夹的内容,而不是文件夹本身。
这个:
而不是这个:
部署时,您的文件夹结构将如下所示:
您不是第一个 运行 参与其中的人。我 created a PR to clarify this。如果您认为我所做的更改应该说点别的,请告诉我。
旁注:web.config
是在部署时创建的。我的评论有误。