WebClient连接到HTTPS会在某些电话设备上出现NotFound错误

时间:2013-05-15 15:56:00

标签: c# windows-phone-7

尝试使用WebClient从HTTPS服务器下载文件时,我的应用程序中出现NotFound错误。它仅发生在某些设备(例如诺基亚810)上,但同一应用程序在其他设备(例如诺基亚910)和WP仿真器上运行良好。当我将它输入PC上的浏览器时,同样的URL也可以正常工作。

这是一个演示问题的基本敲门应用程序。

private void Button_Click(object sender, RoutedEventArgs e)
{
    string URL = "https://MyDomain.com/MyFile.txt";
    WebClient WC = new WebClient();
    WC.DownloadStringCompleted += WC_DownloadStringCompleted;
    WC.DownloadStringAsync(new Uri(URL));
}

void WC_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
        txtResult.Text = e.Result;
    else
        txtResult.Text = "ERROR:\r\n" + e.Error.Message + "\r\n" + e.Error.StackTrace;
 }

不幸的是服务器不受我的控制,但它确实有一个完整的证书(由Thawte签名)所以这不是自签名证书的问题。

我已尝试将此测试应用程序作为WP7.1和WP8,并且在同一设备上始终失败。

这是一款适合公众消费的应用,因此无法在手机上安装证书或任何其他手机配置设置。

1 个答案:

答案 0 :(得分:1)

我已经设法解决了这个问题,但解决方案并不是代码的直接问题。

我们的一些心爱的测试人员正在将设备上的日期提前一年,以便测试应用程序帐户状态的更改,而不是重置回正确的日期。这当然导致设备将证书标记为2014年2月的失效日期无效,因此无法通过HTTPS调用。