Windows phone 7 Windows Phone应用程序在3G环境下运行时引发异常(自动退出),但在WIFI环境下可以正常运行。很奇怪

Windows phone 7 Windows Phone应用程序在3G环境下运行时引发异常(自动退出),但在WIFI环境下可以正常运行。很奇怪,windows-phone-7,webclient,html-agility-pack,Windows Phone 7,Webclient,Html Agility Pack,我已经尝试了数百次来查找这段代码的错误。 它只能通过WIFI工作,但当我关闭手机上的WIFI并再次运行应用程序时,该应用程序会自动关闭,这意味着它引发了一个异常 这个应用程序很简单,我使用WebClint()下载HTML源代码,并用HTML Agility Pack对其进行解析,然后将它们添加到列表中,然后访问列表以创建每个新闻对象 我尝试捕获异常stacktrace并将其绑定到texblock,它表示ArgumentOutOfRange异常和Genericlist(int32索引)中的一些内容

我已经尝试了数百次来查找这段代码的错误。 它只能通过WIFI工作,但当我关闭手机上的WIFI并再次运行应用程序时,该应用程序会自动关闭,这意味着它引发了一个异常

这个应用程序很简单,我使用WebClint()下载HTML源代码,并用HTML Agility Pack对其进行解析,然后将它们添加到列表中,然后访问列表以创建每个新闻对象

我尝试捕获异常stacktrace并将其绑定到texblock,它表示ArgumentOutOfRange异常和Genericlist(int32索引)中的一些内容

我不知道,在wifi上还可以,但在3G网络上不行。有人能帮忙吗

    public partial class MainPage : PhoneApplicationPage
{
    string srcHTML;
    HtmlNode UrlNode;
    ObservableCollection<News> newsList = new ObservableCollection<News>();
    List<HtmlNode> headlines;
    HtmlDocument hd;
    News n;
    // Constructor
    public MainPage()
    {
        InitializeComponent();
    }

    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        WebClient webClenet = new WebClient();
        webClenet.Encoding = new HtmlAgilityPack.Gb2312Encoding();
        webClenet.DownloadStringAsync(new Uri("http://www.6park.com/news/multi1.shtml", UriKind.RelativeOrAbsolute));
        webClenet.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClenet_DownloadStringCompleted);
    }


    private void webClenet_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        srcHTML = e.Result;
        GetHeadlinePage(srcHTML);
    }
    private void GetHeadlinePage(string srcHTML)
    {
        hd = new HtmlDocument();
        hd.LoadHtml(srcHTML);
        try
        {

            UrlNode = hd.DocumentNode.ChildNodes[1].ChildNodes[3].ChildNodes[8].ChildNodes["tr"].ChildNodes["td"].ChildNodes["ul"];
            headlines = UrlNode.Descendants("a").ToList();

            foreach (var headline in headlines)
            {

                if (headline.Attributes["href"].Value.Contains("6park"))
                {
                    n = new News();
                    n.NewsTitle = headline.InnerText;
                    n.NewsUrl = headline.Attributes["href"].Value;
                    n.NewsDetails = headline.NextSibling.InnerText.Replace("- ", "新闻来源:") + headline.NextSibling.NextSibling.InnerText + headline.NextSibling.NextSibling.NextSibling.InnerText;
                    newsList.Add(n);
                }
            }
        }

        catch (Exception ex)
        {
            //NewsSource.Text = ex.StackTrace + "\n" + ex.Message;
        }




        NewslistBox.ItemsSource = newsList;
        //NewsHeadlineWebBrowser.NavigateToString(ConvertExtendedASCII(headNews));
    }
}
public部分类主页:PhoneApplicationPage
{
字符串srcHTML;
HtmlNode-UrlNode;
ObservableCollection newsList=新的ObservableCollection();
列出标题;
HtmlDocument hd;
新闻n;
//建造师
公共主页()
{
初始化组件();
}
已加载专用void PhoneApplicationPage_(对象发送方,路由目标)
{
WebClient webClenet=新的WebClient();
webClenet.Encoding=new-HtmlAgilityPack.Gb2312Encoding();
webClenet.DownloadStringAsync(新Uri(“http://www.6park.com/news/multi1.shtml,UriKind.相对溶质);
webClenet.DownloadStringCompleted+=新的DownloadStringCompletedEventHandler(webClenet\u DownloadStringCompleted);
}
私有void webClenet_DownloadStringCompleted(对象发送方,DownloadStringCompletedEventArgs e)
{
srcHTML=e.结果;
GetHeadlinePage(srcHTML);
}
私有void GetHeadlinePage(字符串srcHTML)
{
hd=新的HtmlDocument();
hd.LoadHtml(srcHTML);
尝试
{
UrlNode=hd.DocumentNode.ChildNodes[1]。ChildNodes[3]。ChildNodes[8]。ChildNodes[“tr”]。ChildNodes[“td”]。ChildNodes[“ul”];
headlines=UrlNode.substands(“a”).ToList();
foreach(标题中的var标题)
{
如果(headline.Attributes[“href”].Value.Contains(“6park”))
{
n=新新闻();
n、 NewsTitle=headline.InnerText;
n、 NewsUrl=headline.Attributes[“href”].Value;
n、 NewsDetails=headline.NextSibling.InnerText.Replace(“-”,”新闻来源:") + headline.NextSibling.NextSibling.InnerText+headline.NextSibling.NextSibling.NextSibling.InnerText;
新闻列表。添加(n);
}
}
}
捕获(例外情况除外)
{
//newsource.Text=ex.StackTrace+“\n”+ex.Message;
}
NewslistBox.ItemsSource=新闻列表;
//NewsHeadlineWebBrowser.NavigateToString(ConvertExtendedASCII(headNews));
}
}

我将调试传递给
GetHeadlinePage()
的值

我怀疑响应因网络而异,或者请求超时,或者您遇到了其他错误

我假设对
LoadHtml()
的调用失败,因为它不在任何异常处理/捕获中,并且您没有验证传递给它的值