端点没有收到来自 Skype 频道的请求,但在网络聊天中没问题
Endpoint don't receive a request from skype channel but it's ok in webchat
我的 API 端点没有收到来自 Skype 机器人服务的任何信号,但是当我将我的代码部署到生产中时,它与 Web 聊天的预期一样。
API 使用:
- .net 核心 2.2
- 机器人生成器 v4.5.2
- 主机在 IIS 7.5
API 在本地使用 ngrok 的 2 频道网络聊天和 Skype 中工作正常。在本地,我看到每个代理在 iis 日志中请求登录:
Skype 频道:Microsoft-SkypeBotApi+(Microsoft-BotFramework/3.0)
网络聊天:BF-DirectLine+(Microsoft-BotFramework/3.2++https://botframework.com/ua)
在生产过程中,我在 iis 日志中只看到来自 Web Chat 频道的请求。我不确定生产中的防火墙,因为这是 3rd 的服务器。
我猜大约有 2 个案例:
Skype 机器人服务没有向我的端点发送请求有特殊原因吗?
Skype bot 服务发出了请求,但是这个请求无法到达我的 API 端点(特殊限制防火墙)。
我测试了很多情况,结果都是一样的:
- 我尝试在 2 个环境中使用相同的机器人(更改端点 URL)。
- 我尝试创建新的机器人。
- 我尝试将代码部署到另一台服务器,我确定收入和结果请求(结果是我对该服务器的期望)。
本地 IIS 日志:
2019-09-23 04:07:17 ::1 OPTIONS /api/messages - 3978 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:69.0)+Gecko/20100101+Firefox/69.0 https://botservice.hosting.portal.azure.net/botservice/?bundlingKind=PopularPartitioner&cacheability=3&extensionName=Microsoft_Azure_BotService&l=en&pageVersion=1.4.0.40&trustedAuthority=portal.azure.com 405 0 0 12
2019-09-23 04:07:32 ::1 POST /api/messages - 3978 - ::1 BF-DirectLine+(Microsoft-BotFramework/3.2++https://botframework.com/ua) - 200 0 0 13008
2019-09-23 04:08:19 ::1 POST /api/messages - 3978 - ::1 Microsoft-SkypeBotApi+(Microsoft-BotFramework/3.0) - 200 0 0 1431
生产时的 IIS 日志:
2019-09-23 03:15:50 10.3.23.6 OPTIONS /api/messages - 7541 - 10.3.254.81 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:69.0)+Gecko/20100101+Firefox/69.0 405 0 0 78
2019-09-23 03:23:39 10.3.23.6 POST /api/messages - 7541 - 10.3.254.81 BF-DirectLine+(Microsoft-BotFramework/3.2++https://botframework.com/ua) 200 0 0 5981
此问题的根本原因是我的服务器尚未启用 TLS 1.2。
在我为此服务器启用 TLS 1.2 后,一切都按预期工作。
我的 API 端点没有收到来自 Skype 机器人服务的任何信号,但是当我将我的代码部署到生产中时,它与 Web 聊天的预期一样。 API 使用: - .net 核心 2.2 - 机器人生成器 v4.5.2 - 主机在 IIS 7.5
API 在本地使用 ngrok 的 2 频道网络聊天和 Skype 中工作正常。在本地,我看到每个代理在 iis 日志中请求登录:
Skype 频道:Microsoft-SkypeBotApi+(Microsoft-BotFramework/3.0)
网络聊天:BF-DirectLine+(Microsoft-BotFramework/3.2++https://botframework.com/ua)
在生产过程中,我在 iis 日志中只看到来自 Web Chat 频道的请求。我不确定生产中的防火墙,因为这是 3rd 的服务器。
我猜大约有 2 个案例:
Skype 机器人服务没有向我的端点发送请求有特殊原因吗?
Skype bot 服务发出了请求,但是这个请求无法到达我的 API 端点(特殊限制防火墙)。
我测试了很多情况,结果都是一样的:
- 我尝试在 2 个环境中使用相同的机器人(更改端点 URL)。
- 我尝试创建新的机器人。
- 我尝试将代码部署到另一台服务器,我确定收入和结果请求(结果是我对该服务器的期望)。
本地 IIS 日志:
2019-09-23 04:07:17 ::1 OPTIONS /api/messages - 3978 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:69.0)+Gecko/20100101+Firefox/69.0 https://botservice.hosting.portal.azure.net/botservice/?bundlingKind=PopularPartitioner&cacheability=3&extensionName=Microsoft_Azure_BotService&l=en&pageVersion=1.4.0.40&trustedAuthority=portal.azure.com 405 0 0 12
2019-09-23 04:07:32 ::1 POST /api/messages - 3978 - ::1 BF-DirectLine+(Microsoft-BotFramework/3.2++https://botframework.com/ua) - 200 0 0 13008
2019-09-23 04:08:19 ::1 POST /api/messages - 3978 - ::1 Microsoft-SkypeBotApi+(Microsoft-BotFramework/3.0) - 200 0 0 1431
生产时的 IIS 日志:
2019-09-23 03:15:50 10.3.23.6 OPTIONS /api/messages - 7541 - 10.3.254.81 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:69.0)+Gecko/20100101+Firefox/69.0 405 0 0 78
2019-09-23 03:23:39 10.3.23.6 POST /api/messages - 7541 - 10.3.254.81 BF-DirectLine+(Microsoft-BotFramework/3.2++https://botframework.com/ua) 200 0 0 5981
此问题的根本原因是我的服务器尚未启用 TLS 1.2。 在我为此服务器启用 TLS 1.2 后,一切都按预期工作。