首页 > 解决方案 > 将机器人部署到 Azure 后,在网络聊天键入消息中进行测试返回“未找到”HTTP 状态代码

问题描述

我在 azure 门户中创建了一个 Web App Bot 服务,下载了它,对其进行了修改,在可以运行的 Bot 模拟器上对其进行了测试,然后将其部署回 Azure。在 Azure 中创建了 Bot Channels Registration 和 App Service。我预计原始 Web App Bot 的行为会更新,但是当我在 Web Chat 中进行测试时,它仍然是航班预订示例的默认机器人。当我在 Bot Channels Registration 资源的 Web Chat 测试中键入消息时,我收到“无法发送重试”和“向您的机器人发送此消息时出错。HTTP 状态代码:未找到”

我尝试更改 Microsoft App ID 和密码以及消息传递端点以匹配我在本地测试时使用的端点。我还尝试通过 Visual Studio 发布,而不是使用带有此链接https://www.c-sharpcorner.com/article/publish-your-bot-to-microsoft-azure/的 Azure CLI,但他们使用的应用程序不是 .net核心,它没有部署在我的项目中。我已经用尽了每个链接,但仍然没有找到解决方案。

标签: c#azurevisual-studio-2017botframework

解决方案


通过 Visual Studio 部署

该教程的基础知识很好,尽管超级过时并且不是官方教程/文档。由于您从 Azure 下载了您的机器人,因此您唯一需要发布的是:

  1. 在 Visual Studio 中右键单击您的项目,选择发布
  2. 点击新建
  3. 应用服务 > 选择现有
  4. 选择您的应用服务
  5. 点击确定,它将发布

通过 Azure CLI 部署

遵循部署文档

对部署进行故障排除

老实说,当部署失败时,我发现最好从头开始新的部署,以确保我准确地遵循每个步骤。这通常比尝试对失败的部署进行故障排除和修复要快。话虽如此,这就是您提到的每个问题可能存在的问题:

我希望原始 Web App Bot 的行为会更新,但是当我在 Web Chat 中进行测试时,它仍然是带有航班预订示例的默认机器人

可能的问题:

  1. 部署实际上并不成功
  2. 您部署到错误的资源组

确保你使用的是最新的 Azure CLI,然后重试。

有时,如果您通过 Visual Studio 发布,则右键单击项目,选择发布、编辑、设置,然后在“文件发布选项”下,选中“在目标位置删除其他文件”。请注意,这可能不是您在使用较新的机器人时遇到的问题。

当我在 Bot Channels Registration 资源的 Web Chat 测试中键入消息时,我收到“无法发送重试”和“向您的机器人发送此消息时出错。HTTP 状态代码:未找到”

这通常意味着端点是错误的。在您的 Web App Bot > 设置中,确保消息传递端点是:

https://<yourAppService>.azurewebsites.net/api/messages

我回答了一个类似的问题,用户尝试通过 AZ CLI 进行部署,但他们错过了这一步:

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

我尝试更改 Microsoft App ID 和密码以及消息传递端点以匹配我在本地测试时使用的端点。

正确的 MicrosoftAppId 和 MicrosoftAppPassword 可在您的应用程序注册面板中找到。如果您需要新的 MicrosoftAppPassword,请打开您的 App Registration,转到 Certificates and secrets,然后单击 New Client Secret。请务必复制它,因为如果您离开该页面,您将无法再次查看它。

这些需要在三个地方设置:

  1. appsettings.json文件(或节点.env)。
  2. Azure 门户 > 资源组 > 应用服务 > 配置
  3. 在模拟器中测试时

推荐阅读