症状
假定您开发 Windows 应用商店应用程序使用Windows.Web.Http.HttpClient类将 HTTPS 请求发送到 web 服务器。捕获网络跟踪的应用程序和服务器之间交换的通信,请您注意到每次调用Windows.Web.Http.HttpClient.GetStringAsync方法或其他类似Windows.Web.Http.HttpClient类的方法将打开 web 服务器的新连接。这种现象对应用程序性能产生不利影响。
注意:Windows.Web.Http.HttpClient类使用 Windows Internet (WinINet) API 来发送 HTTPS 请求。在开发 Windows 桌面应用程序,直接使用 WinINet API 和提供给HttpOpenRequest函数的INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS标志时,也会发生此问题。
解决方案
更新信息
Internet Explorer 还使用 WinINet API。若要解决此问题,请安装最新的 Internet Explorer 累积安全更新。要做到这一点,请转到Microsoft 更新。
有关最新的 Internet Explorer 累积安全更新的技术信息,请访问以下 Microsoft 网站︰
http://www.microsoft.com/technet/security/current.aspx注意:此更新最初包含在安全更新 2969262 中。
有关安全性的详细信息更新 2969262,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰
2969262 MS14-035: Internet Explorer 累积安全更新︰ 2014,6 月 10
解决方法
使用System.Net.Http.HttpClient类
如果您开发 Windows 应用商店应用程序时,您可以不使用Windows.Web.Http.HttpClient类变通解决此问题。相反,您可以使用System.Net.Http.HttpClient类,因为它有它自己的 HTTP 协议实现。
请不要使用 INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 标记
如果您开发的 Windows 桌面应用程序使用 WinINet API,您可以不使用HttpOpenRequest函数INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS标志变通解决此问题。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
详细信息
有关Windows.Web.Http.HttpClient类的详细信息,请访问以下 Microsoft 网站︰
Windows.Web.Http.HttpClient 类的常规信息有关Windows.Web.Http.HttpClient类的示例代码,请转到下面的 Microsoft 网站︰
有关 Windows.Web.Http.HttpClient 类的示例代码有关HttpOpenRequest函数的详细信息,请访问以下 Microsoft 网站︰
HttpOpenRequest 函数的一般信息有关System.Net.Http.HttpClient类的详细信息,请访问以下 Microsoft 网站︰
System.Net.Http.HttpClient 类的常规信息请参阅 Microsoft 用于描述软件更新的术语。