我正在经历我认为是一个奇怪的问题,我希望有人可以帮我排除故障。
几年前,我写了一个C#,。Net程序,它对网站执行一些标准的HTTPS HttpWebRequests,并从请求中返回的“网页”中提取信息。该程序有一个调度程序,每五分钟发出一次这些请求。该计划已经成功运行了多年,每天24小时。
但是,几天前开始,https请求现在已超时,即使网址仍然有效且可以通过浏览器手动访问,也不会返回任何数据。在执行https请求的客户端程序中没有任何改变。
为了尝试解决这个问题,我启动了一个名为“Charles”的程序(类似于Fiddler)。 Charles使用“中间人”方法来解密https请求。奇怪的是,当Charles运行并且设置为拦截https请求时,请求正常工作并返回数据。但是,只要Charles关闭或其SSL代理被关闭,https请求就会失败。
我和Fiddler尝试过相同的练习,但是当Fiddler运行时请求没有成功。它们只在查尔斯跑步时起作用。
我对这一点感到非常难过,并欢迎任何有关如何解决这个问题的建议。
答案 0 :(得分:0)
感谢微软的Eric Lawrence(Fiddler的作者),这个问题得到了解决。埃里克说:
您遇到了问题,因为此网站正在发送TLS警告 HTTPS握手的开始,那时.NET会超时 发生。看到 http://blogs.msdn.com/b/fiddler/archive/2012/03/29/https-request-hangs-.net-application-connection-on-tls-server-name-indicator-warning.aspx。 问题只在Windows Vista及更高版本上出现,因为 警告与HTTPS中不存在的TLS扩展相关 在WinXP上堆栈。