尝试使用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,并且在同一设备上始终失败。
这是一款适合公众消费的应用,因此无法在手机上安装证书或任何其他手机配置设置。
答案 0 :(得分:1)
我已经设法解决了这个问题,但解决方案并不是代码的直接问题。
我们的一些心爱的测试人员正在将设备上的日期提前一年,以便测试应用程序帐户状态的更改,而不是重置回正确的日期。这当然导致设备将证书标记为2014年2月的失效日期无效,因此无法通过HTTPS调用。