在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设置小得多,但是指定上述内容应该可以解决问题。