سؤال

I have a webrequest to get a xml.That works great but when i press F12(lock screen) while the the server is requested by my app...I got a WebException.
I use a taskCompeltionSource object...
Here is my code

public async Task<String> Query(DataRequestParam dataRequestParam)
        {

            _dataRequestParam = dataRequestParam;

            try
            {
                Result = "";
                Result = await myDownloadString(dataRequestParam);

            }

            catch (WebException we)//ERROR IS CAUGHT HERE
            {
                throw new WebException(we.Message);

            }
            catch (Exception ex)
            {
                throw new MyException(ex.Message);

            }

            return Result;
        }

        public static Task<string> myDownloadString(DataRequestParam dataRequestParam)
        {
            var tcs = new TaskCompletionSource<string>();
            var web = new WebClient();

            if (!string.IsNullOrEmpty(dataRequestParam.AuthentificationLogin))
            {
                System.Net.NetworkCredential account = new NetworkCredential(dataRequestParam.AuthentificationLogin, dataRequestParam.AuthentificationPassword);
                web.Credentials = account;
            }

                web.DownloadStringCompleted += (s, e) =>
                {
                    if (e.Error != null) tcs.TrySetException(e.Error);
                    else if (e.Cancelled) tcs.TrySetCanceled();
                    else tcs.TrySetResult(e.Result);
                };

                web.DownloadStringAsync(dataRequestParam.TargetUri);
                return tcs.Task;

        }
هل كانت مفيدة؟

المحلول

If you haven't disabled ApplisationIdleDetection, your process is stopped while entering Lock screen - thus you probably get the exception - like I've said in comment. Disabling will solve this issue, but you must be aware of few things:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top