c# - 连接到 HTTPS 的 WebClient 在某些电话设备上出现 NotFound 错误

标签 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 上尝试过这个测试应用程序,但它在相同的设备上一直失败。

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

最佳答案

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

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

关于c# - 连接到 HTTPS 的 WebClient 在某些电话设备上出现 NotFound 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16569756/

相关文章:

c# - 如何使用 Mutex 创建锁?

c# - 如何用递归方法实现并行?

c# - 在 C# 中实现 WebDAV 服务器?

c# - 让 WP7 上的 silverlight 应用全屏运行

c# - 使用内置应用程序编写具有 facebook 共享或推文的 WP7 应用程序

silverlight - 在 WP7 上以编程方式创建 Silverlight Grid 列时出现问题

wcf - Azure WCF 服务使用 Azure WCF 服务

c# - Java 和 C# 之间的不同 SHA1 哈希结果

c# - 重用 Azure 服务总线中的连接

c# - c#中,如何独立保证两台机器不会净生成相同的随机数?