2

尝试使用 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 进行了尝试,但它在相同的设备上始终失败。

这是一个供公众使用的应用程序,因此不能在手机上安装证书或任何其他手机配置设置。

4

1 回答 1

1

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

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

于 2013-05-16T08:04:06.853 回答