Beispiel #1
0
        public override WebResponse EndGetResponse(IAsyncResult asyncResult)
        {
            GlobalLog.Enter("FileWebRequest::EndGetResponse");

            WebResponse response;

            try {
                ContextAwareResult ar = asyncResult as ContextAwareResult;
                if (asyncResult == null || ar == null)
                {
                    Exception e = asyncResult == null? new ArgumentNullException("asyncResult"): new ArgumentException(SR.GetString(SR.InvalidAsyncResult), "asyncResult");
                    GlobalLog.LeaveException("FileWebRequest::EndGetRequestStream", e);
                    throw e;
                }


                object result = ar.InternalWaitForCompletion();
                if (result is Exception)
                {
                    throw (Exception)result;
                }
                response      = (WebResponse)result;
                m_readPending = false;
            } catch (Exception exception) {
                if (Logging.On)
                {
                    Logging.Exception(Logging.Web, this, "EndGetResponse", exception);
                }
                throw;
            } finally {
                GlobalLog.Leave("FileWebRequest::EndGetResponse");
            }
            return(response);
        }