我有一个用于检索一些数据的网络客户端的包装器。WP8 App 正在使用同样的功能,WP8 ScheduledAgent 也使用了同样的功能。
不知何故,当WP8 App使用该功能时,没有错误并且正确返回。但是,当 ScheduledAgent 使用该函数时,它会在下面的粗体代码中出错。我尝试了尝试捕获,但没有捕获。通过调试器,GetSTringAsync(uri) 已经完成,没有任何异常。该错误似乎仅在将返回任务分配给结果字符串时发生。
我收到的错误是:System.Windows.ni.dll 中发生了“System.UnauthorizedAccessException”类型的未处理异常
公共类 HttpClient : WebClient .. 私有异步任务 GetStringAsync(string strUri) { Uri uri = 新的 Uri(strUri); 字符串结果 = string.Empty; 尝试 { 结果 = 等待 GetStringAsync(uri); } 捕捉(例外前) { MessageBox.Show(ex.Message); } 返回结果; } ... 私有任务 GetStringAsync(Uri requestUri) { TaskCompletionSource tcs = new TaskCompletionSource(); 尝试 { this.DownloadStringCompleted += (s, e) => { if (e.Error == null) { tcs.TrySetResult(e.Result); } 别的 { tcs.TrySetException(e.Error); } }; this.DownloadStringAsync(requestUri); } 捕捉(例外前) { tcs.TrySetException(ex); } 如果(tcs.Task.Exception != null) { 抛出 tcs.Task.Exception; } 返回 tcs.Task; }
如果我遗漏了什么,请告知。