"There was an error sending this message to your bot: HTTP status code NotFound"

"There was an error sending this message to your bot: HTTP status code NotFound"

我用 C# 创建了一个机器人并部署了它,但我不断收到错误代码 NotFound 或者在模拟器 404 中测试时。

该机器人在本地测试时运行良好,但在部署时失败。

我用 composer 创建了一个机器人,它做同样的事情,在本地工作,但在部署到 Azure 时失败。

机器人配置:

本地运行的机器人:

Bot 远程失败:

我在使用自定义密码选项创建“Web App Bot”时遇到了同样的问题,有时这个选项会失败。所以你可以尝试在“Web App BOT”中使用自动生成的密码选项。

请验证以下身份验证详细信息:

  1. Microsoft AppId -> 应在应用程序和 Azure 门户中使用相同的 App ID。
  2. Microsoft 密码 -> 应在应用程序和 Azure 门户中使用相同的密码。
  3. Directline 令牌 -> 如果您从前端框架连接,请验证此令牌。
  4. 消息端点 -> 验证此端点

Web App Bot is help to create all necessary service automatically for chatbot implementation and we can create the same process in another way. Please check the following steps.

  • 在 Azure 中创建应用服务(托管您的聊天机器人应用程序)
  • 创建 azure bot 频道注册。
  • Link 使用应用服务端点注册应用服务和机器人频道。
  • 验证所有身份验证详细信息。

注意:您可以在 Azure 机器人模拟器的“在 WebChat 中测试”部分测试您的应用。

参考:Azure Chatbot & Bot Framework Composer

好的,所以我找到了解决方案:

显然,如果您将机器人部署到 Azure,它就无法工作。但是,如果您在 azure 上创建了一个机器人,然后将您创建的机器人部署到它可以工作的应用服务。 link中的答案描述的方式有点模糊且不完整。为了解决我的问题,我在 azure 中创建了一个机器人,它会自动创建一个应用程序服务。然后,我通过选择资源组和应用服务作为我在 Azure 中创建的机器人的目标,发布了我在 visual studio 中创建的机器人。然后我要托管的机器人替换了第一个机器人,并以某种方式神奇地修复了网络问题。显然,如果您在 visual studio 或 composer 中创建机器人并按原样发布它是行不通的,这是微软需要解决的问题。

解决我问题的方法是更改​​应用服务的协议设置。如果您使用 Bot Composer 部署了您的机器人,您将在资源组中找到 2 个应用服务 - 一个带有 'qna' 后缀,另一个没有。选择没有 'qna' 后缀的那个。

Select 应用服务 --> TLS/SSL 设置 --> 仅限 HTTPS --> 开启