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