我们试图找出为什么对特定端点(http或https)的后台请求永远都不会到达IIS。 IIS日志显示了来自设备的其他请求,但没有显示来自后台请求的其他请求。它们确实显示在HTTP.SYS日志中,但没有错误代码,只是一个“ Request_Cancelled”

在不同的测试环境中,这些请求可以正常工作。因此,唯一的区别似乎是防火墙设置或我们尚未发现的设置。

搜索了可能的原因后,我看到了有关可能无效的SSL证书的信息。我们目前不在遇到问题的地方使用https,在测试中,我们已经成功尝试了两者。另一个可能的原因可能是延迟,因此我们尝试向测试中的所有请求添加10秒的延迟,这也按预期工作。

导致此错误的其他原因是什么,并且阻止了对IIS的请求?

最佳答案

我认为很难找到取消请求的根本原因。
您可以尝试捕获和分析http.sys etl日志。

如何捕获http.sys etl日志。


用管理员运行CMD.EXE
使用cd c:\ etl找到要放置etl日志的文件夹
运行logman start httptrace -p Microsoft-Windows-HttpService 0xFFFF -o httptrace.etl -ets
尝试重现问题
使用命令logman stop httptrace -ets停止跟踪
然后,您应该看到一个显示在其中的.etl文件


如何分析这些日志。

1.下载并安装MS网络监视器:
https://www.microsoft.com/en-us/download/details.aspx?id=4865

2.使用网络监视器打开etl日志

3.选择解析器配置文件->网络监视器解析器->右上角的Windows

4.然后,当您从IOS访问端点时,您应该能够发生所有事件。

由于找不到太多有关如何解决request_cancelled错误的文档。也许分析http.sys etl将是一个好的开始

关于c# - 从iOS设备获取%windir%\System32\LogFiles\HTTPERR中的“Request_Cancelled”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58093928/

10-11 08:08