我有用於閱讀網絡訂閱源的WP7應用程序。我使用Async CTP下載源,將它們保存在本地並使用它們,因此我可以離線使用App。Windows Phone上的異步CTP - 無法使用脫機?
當我連接到無線或手機時,一切正常。但是,當我下線,應用程序崩潰的開始,出現錯誤:
The remote server returned an error: NotFound.
調用堆棧的位置:
AsyncCTPLibrary_Phone.dll!System.Runtime.CompilerServices.AsyncVoidMethodBulder.SetException.AnonymousMethod_2(object state)
堆棧跟蹤:
at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result) at System.Net.Browser.ClientHttpWebRequest.<>c_DisplayClassa.b_8(Object state2) at System.Threading.ThreadPool.WorkItem.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadPool.WorkItem.doWork(Object o) at System.Threading.Timer.ring()
任何想法,爲什麼?我不是自動downlodading什麼...
編輯:這裏的啓動代碼的一部分,我真的盡力避免調用Web客戶端,如果我脫機:
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
MainPage_Init();
}
private async void MainPage_Init()
{
string isConfig = await Load_Config("");
if (isLoaded == false)
{
if (RSS.Parameters.AutoUpdate == "On")
{
string isDataOk = await Refresh_data();
Refresh_ui();
}
else
{
Refresh_ui();
}
isLoaded = true;
}
}
async Task<string> Load_Config(string force)
{
if (!DeviceNetworkInformation.IsNetworkAvailable)
{
MessageBox.Show(RSS.Parameters.MessageNetwork);
//Load Config from IsoStore
return "No Network";
}
else
{
string data = await new WebClient().DownloadStringTaskAsync(url);
return await GetConfig_Save_Local_XML_Async(data);
//Load Config from Web, Save to IsoStore
}
}
private async Task<string> Refresh_data() //load feeds form Internet and save them to IsoStore
{
IsolatedStorageSettings isoStorage = IsolatedStorageSettings.ApplicationSettings;
if (!DeviceNetworkInformation.IsNetworkAvailable)
{
ProgressBarSwitch("off");
MessageBox.Show(RSS.Parameters.MessageNetwork);
}
else
{
foreach (RSSFeedInfo sfi in RSS.Parameters.FeedsInfo)
{
await Load_Web_XML(new Uri(sfi.Web_XML), sfi.Local_XML);
}
isoStorage["SettingsLastUpdate"] = System.DateTime.Now;
isoStorage.Save();
ProgressBarSwitch("off");
}
return "ok";
}
private void Refresh_ui() //load feeds from IsoStore
{
//use local data
}
您需要向我們展示你正在使用異步其中的部分代碼。 – 2012-08-03 07:55:46
我添加了開始代碼發佈... – amentma 2012-08-03 08:57:40