无法测试自托管机器人
Unable to test self-hosted bot
我在 C# 中使用 Microsoft Bot Framework 开发了一个机器人,并且正在尝试将其部署到 Web 服务器而不是 Azure。 Web 服务器运行 Windows Server 2012 R2,并安装了 IIS 8.5。该机器人在本地运行良好,可以使用模拟器在那里进行测试,没有任何问题。
我已经在 Web 服务器上的 IIS 中为机器人配置了一个站点,并在那里部署了机器人代码,并配置了应用程序 ID 和密码。在 Bot Framework 站点上使用 "test connection" 工具时,我收到一条 "endpoint authorisation succeeded" 消息。但是,当尝试使用模拟器(或门户网站内置的聊天工具)对其进行测试时,我没有收到任何回复,并且在模拟器中,所有回复都显示为内部服务器错误。
我在后台使用 ngrok 运行 将连接转发到我的开发机器,并更新了模拟器 URL 字段以包含 ngrok [=23] 中指示的 URL =] 部分。然而,当我尝试进行聊天时,ngrok 控制台 window 中的 HTTP 请求列表并未填充。
我曾尝试使用 this previous solution 来获取有关可能发生的任何内部服务器错误的更多详细信息,但在部署此代码后,我收到了堆栈跟踪。同样,这在本地运行良好,可以毫无问题地使用模拟器进行测试。
任何人都可以告诉我哪里可能出错,或者分享他们调试此类错误的经验吗?不幸的是,Bot Framework 似乎并没有提供非常好的调试体验。
尝试将模拟器中的端点 URL 设置为实际的机器人端点(与您在开发门户中提供的 URL 相同)。模拟器能够直接向您的机器人发送消息。 ngrok URL 用于通过隧道将机器人的回复传回模拟器。
在这种情况下,通过将服务器升级到 运行 最新可用版本的 .NET Framework (4.6.2) 解决了问题。安装了 4.5,这与 Bot Framework 不兼容。
我在 C# 中使用 Microsoft Bot Framework 开发了一个机器人,并且正在尝试将其部署到 Web 服务器而不是 Azure。 Web 服务器运行 Windows Server 2012 R2,并安装了 IIS 8.5。该机器人在本地运行良好,可以使用模拟器在那里进行测试,没有任何问题。
我已经在 Web 服务器上的 IIS 中为机器人配置了一个站点,并在那里部署了机器人代码,并配置了应用程序 ID 和密码。在 Bot Framework 站点上使用 "test connection" 工具时,我收到一条 "endpoint authorisation succeeded" 消息。但是,当尝试使用模拟器(或门户网站内置的聊天工具)对其进行测试时,我没有收到任何回复,并且在模拟器中,所有回复都显示为内部服务器错误。
我在后台使用 ngrok 运行 将连接转发到我的开发机器,并更新了模拟器 URL 字段以包含 ngrok [=23] 中指示的 URL =] 部分。然而,当我尝试进行聊天时,ngrok 控制台 window 中的 HTTP 请求列表并未填充。
我曾尝试使用 this previous solution 来获取有关可能发生的任何内部服务器错误的更多详细信息,但在部署此代码后,我收到了堆栈跟踪。同样,这在本地运行良好,可以毫无问题地使用模拟器进行测试。
任何人都可以告诉我哪里可能出错,或者分享他们调试此类错误的经验吗?不幸的是,Bot Framework 似乎并没有提供非常好的调试体验。
尝试将模拟器中的端点 URL 设置为实际的机器人端点(与您在开发门户中提供的 URL 相同)。模拟器能够直接向您的机器人发送消息。 ngrok URL 用于通过隧道将机器人的回复传回模拟器。
在这种情况下,通过将服务器升级到 运行 最新可用版本的 .NET Framework (4.6.2) 解决了问题。安装了 4.5,这与 Bot Framework 不兼容。