我有一个用于检索一些数据的网络客户端的包装器。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;
}
如果我遗漏了什么,请告知。