【问题标题】:Test in Web Chat typing message returns "Not found" HTTP status code after deploying bot to Azure将机器人部署到 Azure 后,在网络聊天键入消息中进行测试返回“未找到”HTTP 状态代码
【发布时间】:2019-06-03 22:59:45
【问题描述】:

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

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

【问题讨论】:

  • 通过 Kudu 在开发工具 > 应用服务的高级工具下检查日志流或日志文件。您还可以在监控 > 应用服务日志下为您的应用服务打开 Application logs,然后在 Web 聊天中测试您的机器人时查看日志流。我还会检查deployment logs
  • 部署日志仅包含:[ ]。我尝试使用 curl 查看日志流,但我收到未经授权的 401 错误,即使我确定输入了正确的凭据。
  • 由于您的部署日志为空,这意味着您的机器人尚未发布。您需要按照以下答案中的说明发布您的机器人。
  • 是的,我的问题已经解决了。

标签: c# azure visual-studio-2017 botframework


【解决方案1】:

通过 Visual Studio 部署

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

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

通过 Azure CLI 部署

关注the Deployment Docs

对部署进行故障排除

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

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

可能的问题:

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

确保您使用的是latest Azure CLI,然后重试。

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

当我在网络聊天中为机器人频道注册资源的测试中键入消息时,我收到“无法发送重试”和“向您的机器人发送此消息时出错。HTTP 状态代码:未找到”

这通常意味着端点错误。在您的 Web App Bot > Settings 中,确保 Messaging Endpoint 为:

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

I answered a similar question 用户尝试通过 AZ CLI 进行部署但缺少此步骤:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    我已经在这里回答了:"There was an error sending this message to your bot: HTTP status code NotFound"

    但为了方便起见,我也将答案粘贴在这里。

    解决我的问题的是更改应用服务的协议设置。如果您使用 Bot Composer 部署了您的机器人,则在资源组中您会发现 2 个应用服务——一个带有“qna”后缀,另一个没有。选择没有“qna”后缀的那个。

    选择应用服务 --> TLS/SSL 设置 --> 仅 HTTPS --> 开启

    下面的图片: Image for reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 2018-01-09
      • 2018-01-31
      相关资源
      最近更新 更多