private void InvokeAsyncCallback(IAsyncResult result)
        {
            object               parameter   = null;
            Exception            exception   = null;
            WebClientAsyncResult asyncResult = (WebClientAsyncResult)result;

            if (asyncResult.Request != null)
            {
                try {
                    object           o = null;
                    Stream           responseStream = null;
                    WebResponse      response       = EndSend(asyncResult, ref o, ref responseStream);
                    InvokeAsyncState invokeState    = (InvokeAsyncState)o;
                    parameter = ReadResponse(invokeState.Method, response, responseStream);
                }
                catch (Exception e) {
                    if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException)
                    {
                        throw;
                    }
                    exception = e;
                    if (Tracing.On)
                    {
                        Tracing.ExceptionCatch(TraceEventType.Error, this, "InvokeAsyncCallback", e);
                    }
                }
            }
            AsyncOperation asyncOp = (AsyncOperation)result.AsyncState;
            UserToken      token   = (UserToken)asyncOp.UserSuppliedState;

            OperationCompleted(token.UserState, new object[] { parameter }, exception, false);
        }
Exemplo n.º 2
0
        private void InvokeAsyncCallback(IAsyncResult result)
        {
            object               obj2        = null;
            Exception            e           = null;
            WebClientAsyncResult asyncResult = (WebClientAsyncResult)result;

            if (asyncResult.Request != null)
            {
                try
                {
                    object           internalAsyncState = null;
                    Stream           responseStream     = null;
                    WebResponse      response           = base.EndSend(asyncResult, ref internalAsyncState, ref responseStream);
                    InvokeAsyncState state = (InvokeAsyncState)internalAsyncState;
                    obj2 = this.ReadResponse(state.Method, response, responseStream);
                }
                catch (Exception exception2)
                {
                    if (((exception2 is ThreadAbortException) || (exception2 is StackOverflowException)) || (exception2 is OutOfMemoryException))
                    {
                        throw;
                    }
                    e = exception2;
                    if (Tracing.On)
                    {
                        Tracing.ExceptionCatch(TraceEventType.Error, this, "InvokeAsyncCallback", exception2);
                    }
                }
            }
            AsyncOperation asyncState        = (AsyncOperation)result.AsyncState;
            UserToken      userSuppliedState = (UserToken)asyncState.UserSuppliedState;

            base.OperationCompleted(userSuppliedState.UserState, new object[] { obj2 }, e, false);
        }
Exemplo n.º 3
0
        internal override void AsyncBufferedSerialize(WebRequest request, Stream requestStream, object internalAsyncState)
        {
            InvokeAsyncState state = (InvokeAsyncState)internalAsyncState;

            state.Message.SetStream(requestStream);
            this.Serialize(state.Message);
        }
        /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapHttpClientProtocol.BeginInvoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Starts an asynchronous invocation of a method of a SOAP web
        ///       service.
        ///    </para>
        /// </devdoc>
        protected IAsyncResult BeginInvoke(string methodName, object[] parameters, AsyncCallback callback, object asyncState)
        {
            InvokeAsyncState     invokeState = new InvokeAsyncState(methodName, parameters);
            WebClientAsyncResult asyncResult = new WebClientAsyncResult(this, invokeState, null, callback, asyncState);

            return(BeginSend(Uri, asyncResult, true));
        }
Exemplo n.º 5
0
        protected object[] EndInvoke(IAsyncResult asyncResult)
        {
            object internalAsyncState = null;
            Stream responseStream     = null;

            object[] objArray;
            try
            {
                WebResponse      response = base.EndSend(asyncResult, ref internalAsyncState, ref responseStream);
                InvokeAsyncState state    = (InvokeAsyncState)internalAsyncState;
                objArray = this.ReadResponse(state.Message, response, responseStream, true);
            }
            catch (XmlException exception)
            {
                throw new InvalidOperationException(System.Web.Services.Res.GetString("WebResponseBadXml"), exception);
            }
            finally
            {
                if (responseStream != null)
                {
                    responseStream.Close();
                }
            }
            return(objArray);
        }
Exemplo n.º 6
0
        internal override void AsyncBufferedSerialize(WebRequest request, Stream requestStream, object internalAsyncState)
        {
            InvokeAsyncState  invokeState = (InvokeAsyncState)internalAsyncState;
            SoapClientMessage message     = invokeState.Message;

            message.SetStream(requestStream);
            Serialize(invokeState.Message);
        }
Exemplo n.º 7
0
        protected object EndInvoke(IAsyncResult asyncResult)
        {
            object           internalAsyncState = null;
            Stream           responseStream     = null;
            WebResponse      response           = base.EndSend(asyncResult, ref internalAsyncState, ref responseStream);
            InvokeAsyncState state = (InvokeAsyncState)internalAsyncState;

            return(this.ReadResponse(state.Method, response, responseStream));
        }
        /// <include file='doc\HttpClientProtocol.uex' path='docs/doc[@for="HttpSimpleClientProtocol.EndInvoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Ends an asynchronous invocation of a method of a HTTP web service.
        ///    </para>
        /// </devdoc>
        protected object EndInvoke(IAsyncResult asyncResult)
        {
            object           o = null;
            Stream           responseStream = null;
            WebResponse      response       = EndSend(asyncResult, ref o, ref responseStream);
            InvokeAsyncState invokeState    = (InvokeAsyncState)o;

            return(ReadResponse(invokeState.Method, response, responseStream));
        }
Exemplo n.º 9
0
        /// <include file='doc\HttpClientProtocol.uex' path='docs/doc[@for="HttpSimpleClientProtocol.InitializeAsyncRequest"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        internal override void InitializeAsyncRequest(WebRequest request, object internalAsyncState)
        {
            InvokeAsyncState invokeState = (InvokeAsyncState)internalAsyncState;

            if (invokeState.ParamWriter.UsesWriteRequest && invokeState.Parameters.Length == 0)
            {
                request.ContentLength = 0;
            }
        }
Exemplo n.º 10
0
        internal override void AsyncBufferedSerialize(WebRequest request, Stream requestStream, object internalAsyncState)
        {
            InvokeAsyncState invokeState = (InvokeAsyncState)internalAsyncState;

            if (invokeState.ParamWriter != null)
            {
                invokeState.ParamWriter.InitializeRequest(request, invokeState.Parameters);
                if (invokeState.ParamWriter.UsesWriteRequest && invokeState.Parameters.Length > 0)
                {
                    invokeState.ParamWriter.WriteRequest(requestStream, invokeState.Parameters);
                }
            }
        }
Exemplo n.º 11
0
        private void InvokeAsyncCallback(IAsyncResult result)
        {
            object[]             parameters  = null;
            Exception            e           = null;
            WebClientAsyncResult asyncResult = (WebClientAsyncResult)result;

            if (asyncResult.Request != null)
            {
                object internalAsyncState = null;
                Stream responseStream     = null;
                try
                {
                    WebResponse      response = base.EndSend(asyncResult, ref internalAsyncState, ref responseStream);
                    InvokeAsyncState state    = (InvokeAsyncState)internalAsyncState;
                    parameters = this.ReadResponse(state.Message, response, responseStream, true);
                }
                catch (XmlException exception2)
                {
                    if (Tracing.On)
                    {
                        Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsyncCallback", exception2);
                    }
                    e = new InvalidOperationException(System.Web.Services.Res.GetString("WebResponseBadXml"), exception2);
                }
                catch (Exception exception3)
                {
                    if (((exception3 is ThreadAbortException) || (exception3 is StackOverflowException)) || (exception3 is OutOfMemoryException))
                    {
                        throw;
                    }
                    if (Tracing.On)
                    {
                        Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsyncCallback", exception3);
                    }
                    e = exception3;
                }
                finally
                {
                    if (responseStream != null)
                    {
                        responseStream.Close();
                    }
                }
            }
            AsyncOperation asyncState        = (AsyncOperation)result.AsyncState;
            UserToken      userSuppliedState = (UserToken)asyncState.UserSuppliedState;

            base.OperationCompleted(userSuppliedState.UserState, parameters, e, false);
        }
 protected IAsyncResult BeginInvoke(string methodName, string requestUrl, object[] parameters, AsyncCallback callback, object asyncState)
 {
     HttpClientMethod clientMethod = this.GetClientMethod(methodName);
     MimeParameterWriter parameterWriter = this.GetParameterWriter(clientMethod);
     Uri requestUri = new Uri(requestUrl);
     if (parameterWriter != null)
     {
         parameterWriter.RequestEncoding = base.RequestEncoding;
         requestUrl = parameterWriter.GetRequestUrl(requestUri.AbsoluteUri, parameters);
         requestUri = new Uri(requestUrl, true);
     }
     InvokeAsyncState internalAsyncState = new InvokeAsyncState(clientMethod, parameterWriter, parameters);
     WebClientAsyncResult asyncResult = new WebClientAsyncResult(this, internalAsyncState, null, callback, asyncState);
     return base.BeginSend(requestUri, asyncResult, parameterWriter.UsesWriteRequest);
 }
Exemplo n.º 13
0
        protected void InvokeAsync(string methodName, object[] parameters, SendOrPostCallback callback, object userState)
        {
            if (userState == null)
            {
                userState = base.NullToken;
            }
            InvokeAsyncState     internalAsyncState = new InvokeAsyncState(methodName, parameters);
            AsyncOperation       userAsyncState     = AsyncOperationManager.CreateOperation(new UserToken(callback, userState));
            WebClientAsyncResult result             = new WebClientAsyncResult(this, internalAsyncState, null, new AsyncCallback(this.InvokeAsyncCallback), userAsyncState);

            try
            {
                base.AsyncInvokes.Add(userState, result);
            }
            catch (Exception exception)
            {
                if (((exception is ThreadAbortException) || (exception is StackOverflowException)) || (exception is OutOfMemoryException))
                {
                    throw;
                }
                if (Tracing.On)
                {
                    Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", exception);
                }
                Exception exception2         = new ArgumentException(System.Web.Services.Res.GetString("AsyncDuplicateUserState"), exception);
                object[]  results            = new object[1];
                InvokeCompletedEventArgs arg = new InvokeCompletedEventArgs(results, exception2, false, userState);
                userAsyncState.PostOperationCompleted(callback, arg);
                return;
            }
            try
            {
                base.BeginSend(base.Uri, result, true);
            }
            catch (Exception exception3)
            {
                if (((exception3 is ThreadAbortException) || (exception3 is StackOverflowException)) || (exception3 is OutOfMemoryException))
                {
                    throw;
                }
                if (Tracing.On)
                {
                    Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", exception3);
                }
                object[] objArray2 = new object[1];
                base.OperationCompleted(userState, objArray2, exception3, false);
            }
        }
Exemplo n.º 14
0
        /// <include file='doc\HttpClientProtocol.uex' path='docs/doc[@for="HttpSimpleClientProtocol.BeginInvoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Starts an asynchronous invocation of a method of a HTTP web service.
        ///    </para>
        /// </devdoc>
        protected IAsyncResult BeginInvoke(string methodName, string requestUrl, object[] parameters, AsyncCallback callback, object asyncState)
        {
            HttpClientMethod    method      = GetClientMethod(methodName);
            MimeParameterWriter paramWriter = GetParameterWriter(method);
            Uri requestUri = new Uri(requestUrl);

            if (paramWriter != null)
            {
                paramWriter.RequestEncoding = RequestEncoding;
                requestUrl = paramWriter.GetRequestUrl(requestUri.AbsoluteUri, parameters);
                requestUri = new Uri(requestUrl, true);
            }
            InvokeAsyncState invokeState = new InvokeAsyncState(method, paramWriter, parameters);

            return(BeginSend(requestUri, invokeState, callback, asyncState, paramWriter.UsesWriteRequest));
        }
Exemplo n.º 15
0
        /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapHttpClientProtocol.EndInvoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Ends an asynchronous invocation of a method of a remote SOAP web service.
        ///    </para>
        /// </devdoc>
        protected object[] EndInvoke(IAsyncResult asyncResult)
        {
            object o = null;
            Stream responseStream = null;

            try {
                WebResponse      response    = EndSend(asyncResult, ref o, ref responseStream);
                InvokeAsyncState invokeState = (InvokeAsyncState)o;
                return(ReadResponse(invokeState.Message, response, responseStream, true));
            }
            finally {
                if (responseStream != null)
                {
                    responseStream.Close();
                }
            }
        }
Exemplo n.º 16
0
        protected IAsyncResult BeginInvoke(string methodName, string requestUrl, object[] parameters, AsyncCallback callback, object asyncState)
        {
            HttpClientMethod    clientMethod    = this.GetClientMethod(methodName);
            MimeParameterWriter parameterWriter = this.GetParameterWriter(clientMethod);
            Uri requestUri = new Uri(requestUrl);

            if (parameterWriter != null)
            {
                parameterWriter.RequestEncoding = base.RequestEncoding;
                requestUrl = parameterWriter.GetRequestUrl(requestUri.AbsoluteUri, parameters);
                requestUri = new Uri(requestUrl, true);
            }
            InvokeAsyncState     internalAsyncState = new InvokeAsyncState(clientMethod, parameterWriter, parameters);
            WebClientAsyncResult asyncResult        = new WebClientAsyncResult(this, internalAsyncState, null, callback, asyncState);

            return(base.BeginSend(requestUri, asyncResult, parameterWriter.UsesWriteRequest));
        }
        private void InvokeAsyncCallback(IAsyncResult result)
        {
            object[]  parameters = null;
            Exception exception  = null;

            WebClientAsyncResult asyncResult = (WebClientAsyncResult)result;

            if (asyncResult.Request != null)
            {
                object o = null;
                Stream responseStream = null;
                try {
                    WebResponse      response    = EndSend(asyncResult, ref o, ref responseStream);
                    InvokeAsyncState invokeState = (InvokeAsyncState)o;
                    parameters = ReadResponse(invokeState.Message, response, responseStream, true);
                }
                catch (XmlException e) {
                    if (Tracing.On)
                    {
                        Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsyncCallback", e);
                    }
                    exception = new InvalidOperationException(Res.GetString(Res.WebResponseBadXml), e);
                }
                catch (Exception e) {
                    if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException)
                    {
                        throw;
                    }
                    if (Tracing.On)
                    {
                        Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsyncCallback", e);
                    }
                    exception = e;
                }
                finally {
                    if (responseStream != null)
                    {
                        responseStream.Close();
                    }
                }
            }
            AsyncOperation asyncOp = (AsyncOperation)result.AsyncState;
            UserToken      token   = (UserToken)asyncOp.UserSuppliedState;

            OperationCompleted(token.UserState, parameters, exception, false);
        }
        /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapClientProtocol.InvokeAsync1"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        protected void InvokeAsync(string methodName, object[] parameters, SendOrPostCallback callback, object userState)
        {
            if (userState == null)
            {
                userState = NullToken;
            }
            InvokeAsyncState     invokeState = new InvokeAsyncState(methodName, parameters);
            AsyncOperation       asyncOp     = AsyncOperationManager.CreateOperation(new UserToken(callback, userState));
            WebClientAsyncResult asyncResult = new WebClientAsyncResult(this, invokeState, null, new AsyncCallback(InvokeAsyncCallback), asyncOp);

            try {
                AsyncInvokes.Add(userState, asyncResult);
            }
            catch (Exception e) {
                if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException)
                {
                    throw;
                }
                if (Tracing.On)
                {
                    Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", e);
                }
                Exception exception = new ArgumentException(Res.GetString(Res.AsyncDuplicateUserState), e);
                InvokeCompletedEventArgs eventArgs = new InvokeCompletedEventArgs(new object[] { null }, exception, false, userState);
                asyncOp.PostOperationCompleted(callback, eventArgs);
                return;
            }
            try {
                BeginSend(Uri, asyncResult, true);
            }
            catch (Exception e) {
                if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException)
                {
                    throw;
                }
                if (Tracing.On)
                {
                    Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", e);
                }
                OperationCompleted(userState, new object[] { null }, e, false);
            }
        }
        /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapHttpClientProtocol.EndInvoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Ends an asynchronous invocation of a method of a remote SOAP web service.
        ///    </para>
        /// </devdoc>
        protected object[] EndInvoke(IAsyncResult asyncResult)
        {
            object o = null;
            Stream responseStream = null;

            try {
                WebResponse      response    = EndSend(asyncResult, ref o, ref responseStream);
                InvokeAsyncState invokeState = (InvokeAsyncState)o;
                return(ReadResponse(invokeState.Message, response, responseStream, true));
            }
            catch (XmlException e) {
                throw new InvalidOperationException(Res.GetString(Res.WebResponseBadXml), e);
            }
            finally {
                if (responseStream != null)
                {
                    responseStream.Close();
                }
            }
        }
 /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapClientProtocol.InvokeAsync1"]/*' />
 /// <devdoc>
 ///    <para>[To be supplied.]</para>
 /// </devdoc>
 protected void InvokeAsync(string methodName, object[] parameters, SendOrPostCallback callback, object userState) {
     if (userState == null)
         userState = NullToken;
     InvokeAsyncState invokeState = new InvokeAsyncState(methodName, parameters);
     AsyncOperation asyncOp = AsyncOperationManager.CreateOperation(new UserToken(callback, userState));
     WebClientAsyncResult asyncResult = new WebClientAsyncResult(this, invokeState, null, new AsyncCallback(InvokeAsyncCallback), asyncOp);
     try {
         AsyncInvokes.Add(userState, asyncResult);
     }
     catch (Exception e) {
         if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException)
             throw;
         if (Tracing.On) Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", e);
         Exception exception = new ArgumentException(Res.GetString(Res.AsyncDuplicateUserState), e);
         InvokeCompletedEventArgs eventArgs = new InvokeCompletedEventArgs(new object[] { null }, exception, false, userState);
         asyncOp.PostOperationCompleted(callback, eventArgs);
         return;
     }
     try {
         BeginSend(Uri, asyncResult, true);
     } 
     catch (Exception e) {
         if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException)
             throw;
         if (Tracing.On) Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", e);
         OperationCompleted(userState, new object[] { null }, e, false);
     }
 }
 /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapHttpClientProtocol.BeginInvoke"]/*' />
 /// <devdoc>
 ///    <para>
 ///       Starts an asynchronous invocation of a method of a SOAP web
 ///       service.
 ///    </para>
 /// </devdoc>
 protected IAsyncResult BeginInvoke(string methodName, object[] parameters, AsyncCallback callback, object asyncState) {
     InvokeAsyncState invokeState = new InvokeAsyncState(methodName, parameters);
     WebClientAsyncResult asyncResult = new WebClientAsyncResult(this, invokeState, null, callback, asyncState);
     return BeginSend(Uri, asyncResult, true);
 }
Exemplo n.º 22
0
        /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapHttpClientProtocol.InitializeAsyncRequest"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        internal override void InitializeAsyncRequest(WebRequest request, object internalAsyncState)
        {
            InvokeAsyncState invokeState = (InvokeAsyncState)internalAsyncState;

            invokeState.Message = BeforeSerialize(request, invokeState.MethodName, invokeState.Parameters);
        }
Exemplo n.º 23
0
        /// <include file='doc\SoapClientProtocol.uex' path='docs/doc[@for="SoapHttpClientProtocol.BeginInvoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Starts an asynchronous invocation of a method of a SOAP web
        ///       service.
        ///    </para>
        /// </devdoc>
        protected IAsyncResult BeginInvoke(string methodName, object[] parameters, AsyncCallback callback, object asyncState)
        {
            InvokeAsyncState invokeState = new InvokeAsyncState(methodName, parameters);

            return(BeginSend(Uri, invokeState, callback, asyncState, true));
        }
 protected void InvokeAsync(string methodName, object[] parameters, SendOrPostCallback callback, object userState)
 {
     if (userState == null)
     {
         userState = base.NullToken;
     }
     InvokeAsyncState internalAsyncState = new InvokeAsyncState(methodName, parameters);
     AsyncOperation userAsyncState = AsyncOperationManager.CreateOperation(new UserToken(callback, userState));
     WebClientAsyncResult result = new WebClientAsyncResult(this, internalAsyncState, null, new AsyncCallback(this.InvokeAsyncCallback), userAsyncState);
     try
     {
         base.AsyncInvokes.Add(userState, result);
     }
     catch (Exception exception)
     {
         if (((exception is ThreadAbortException) || (exception is StackOverflowException)) || (exception is OutOfMemoryException))
         {
             throw;
         }
         if (Tracing.On)
         {
             Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", exception);
         }
         Exception exception2 = new ArgumentException(System.Web.Services.Res.GetString("AsyncDuplicateUserState"), exception);
         object[] results = new object[1];
         InvokeCompletedEventArgs arg = new InvokeCompletedEventArgs(results, exception2, false, userState);
         userAsyncState.PostOperationCompleted(callback, arg);
         return;
     }
     try
     {
         base.BeginSend(base.Uri, result, true);
     }
     catch (Exception exception3)
     {
         if (((exception3 is ThreadAbortException) || (exception3 is StackOverflowException)) || (exception3 is OutOfMemoryException))
         {
             throw;
         }
         if (Tracing.On)
         {
             Tracing.ExceptionCatch(TraceEventType.Warning, this, "InvokeAsync", exception3);
         }
         object[] objArray2 = new object[1];
         base.OperationCompleted(userState, objArray2, exception3, false);
     }
 }