廣告:
System.InvalidOperationException: 現(xiàn)在無法開始異步操作。異步操作只能在異步處理程序或模塊中開始,或在頁生存期中的特定事件過程中開始。如果此異常在執(zhí)行 Page 時發(fā)生,請確保 Page 標(biāo)記為 <%@ Page Async="true" %>。此異常也可能表明試圖調(diào)用“異步無效”方法,在 ASP.NET 請求處理內(nèi)一般不支持這種方法。相反,該異步方法應(yīng)該返回一個任務(wù),而調(diào)用方應(yīng)該等待該任務(wù)。
在 System.Web.AspNetSynchronizationContext.OperationStarted()
在 System.Net.WebClient.DownloadFileAsync(Uri address, String fileName, Object userToken)
在 Readpaper.WebClientDownfile.Downbkfile(String webfile, String& datafile) 位置 E:\aspnet2.0\WebClientDownfile.cs:行號 91
解決:用多線程來代替設(shè)置Async="true"
string d1 = ""; string f1 = "http://www.asiacable.com.cn/bk.json"; // Thread thread = new Thread(new ParameterizedThreadStart(wd.Downbkfile)); //可以帶參數(shù) 此方法也可以正常用,舊方法 // thread.Start((object)f1); //可以帶參數(shù) 此方法也可以正常用,舊方法 WebClientDownfile wd1 = new WebClientDownfile(); Thread thread = new Thread(new ThreadStart(() => wd1.Downbkfile(f1,out d1))); //新方法 thread.Start(); thread.Join(); thread.Abort(); //線程啟動馬上關(guān)閉
廣告: