在C#/ .NET WebBrowser控件中,SSL / TLS / HTTPS站点非常慢,但在Internet Explorer中却很好

背景

我正在修改AutoWikiBrowser以使用托管在安全服务器上的MediaWiki站点。 我允许用户通过C#应用程序中的WebBrowser控件手动登录,然后保存存储的cookie以便在HttpWebRequest中使用。

问题

我遇到的问题是任何使用SSL / TLS(https:// urls)的网站都需要非常长的时间来加载,通常会超时。 我不仅尝试使用MediaWiki网站,还尝试其他安全网站,如PayPal和安全GMail。

出于好奇,我在Visual Studio的帮助浏览器中尝试了相同的https站点,[VB WebBrowser示例] [2]和[WPF WebBrowser控件示例] [3],它们都死得很慢。 这些相同的站点在Internet Explorer 7(当然还有Firefox)中运行良好。

问题

什么会导致SSL / TLS站点(https urls)使用.NET WebBrowser控件非常慢,但在Internet Explorer中加载正常?

在编写聊天应用程序和Web服务时,我们遇到的一件事是HTTP,SSL类型请求需要花费大量时间来解决。 事实上,当我们编写我们的站点检查器(确保我们所有的站点/服务都在线)时,最初需要20秒到45秒才能加载所有站点…….不是很有用一个.NET应用程序。

但是,当我将Proxy设置为NULL时,它几乎立即加载。

有时候你会犯这样的错误,所以你也可以这样做:

_api.Proxy = WebRequest.DefaultWebProxy; 

但是,我仍然发现:

 _api.Proxy = null; 

仍然适用于大多数Web请求。

您还可以强制代理和超时比app.config中的默认WinHTTP设置小得多,但是指定上述内容应该可以解决问题。