/// <summary> /// Begins processing a request received via a binary encoded channel. /// </summary> /// <param name="channeId">A unique identifier for the secure channel which is the source of the request.</param> /// <param name="endpointDescription">The description of the endpoint which the secure channel is using.</param> /// <param name="request">The incoming request.</param> /// <param name="callback">The callback.</param> /// <param name="callbackData">The callback data.</param> /// <returns> /// The result which must be passed to the EndProcessRequest method. /// </returns> /// <seealso cref="EndProcessRequest"/> /// <seealso cref="ITransportListener"/> public IAsyncResult BeginProcessRequest( string channeId, EndpointDescription endpointDescription, IServiceRequest request, AsyncCallback callback, object callbackData) { if (channeId == null) { throw new ArgumentNullException(nameof(channeId)); } if (request == null) { throw new ArgumentNullException(nameof(request)); } // create operation. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callback, callbackData, 0); SecureChannelContext context = new SecureChannelContext( channeId, endpointDescription, RequestEncoding.Binary); // begin invoke service. return(result.BeginProcessRequest(context, request)); }
/// <summary> /// Asynchronously calls the _NAME_ service. /// </summary> public virtual IAsyncResult Begin_NAME_(_NAME_Message message, AsyncCallback callback, object callbackData) { try { OnRequestReceived(message._NAME_Request); // check for bad data. if (message == null) { throw new ArgumentNullException("message"); } // set the request context. SetRequestContext(RequestEncoding.Xml); // create handler. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callback, callbackData, 0); return(result.BeginProcessRequest(SecureChannelContext.Current, message._NAME_Request)); } catch (Exception e) { Exception fault = CreateSoapFault(message._NAME_Request, e); OnResponseFaultSent(fault); throw fault; } }
/// <summary> /// Begins processing a request received via a binary encoded channel. /// </summary> /// <param name="channeId">A unique identifier for the secure channel which is the source of the request.</param> /// <param name="endpointDescription">The description of the endpoint which the secure channel is using.</param> /// <param name="request">The incoming request.</param> /// <param name="callback">The callback.</param> /// <param name="callbackData">The callback data.</param> /// <returns> /// The result which must be passed to the EndProcessRequest method. /// </returns> /// <seealso cref="EndProcessRequest"/> /// <seealso cref="ITransportListener"/> public IAsyncResult BeginProcessRequest( string channeId, EndpointDescription endpointDescription, IServiceRequest request, AsyncCallback callback, object callbackData, System.Net.IPAddress remoteIP, // HONEYPOT int remotePort) // HONEYPOT { if (channeId == null) { throw new ArgumentNullException("channeId"); } if (request == null) { throw new ArgumentNullException("request"); } // create operation. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callback, callbackData, 0); SecureChannelContext context = new SecureChannelContext( channeId, endpointDescription, RequestEncoding.Binary, remoteIP, // HONEYPOT - pass remote IP and port to constructor remotePort ); // begin invoke service. return(result.BeginProcessRequest(context, request)); }
/// <summary> /// Dispatches an incoming binary encoded request. /// </summary> public virtual IAsyncResult BeginInvokeService(InvokeServiceMessage message, AsyncCallback callack, object callbackData) { try { // check for bad data. if (message == null) { throw new ServiceResultException(StatusCodes.BadInvalidArgument); } // set the request context. SetRequestContext(RequestEncoding.Binary); // create handler. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callack, callbackData, 0); return(result.BeginProcessRequest(SecureChannelContext.Current, message.InvokeServiceRequest)); } catch (Exception e) { throw CreateSoapFault(null, e); } }
/// <summary> /// Begins processing a request received via a binary encoded channel. /// </summary> /// <param name="channeId">A unique identifier for the secure channel which is the source of the request.</param> /// <param name="endpointDescription">The description of the endpoint which the secure channel is using.</param> /// <param name="request">The incoming request.</param> /// <param name="callback">The callback.</param> /// <param name="callbackData">The callback data.</param> /// <returns> /// The result which must be passed to the EndProcessRequest method. /// </returns> /// <seealso cref="EndProcessRequest"/> /// <seealso cref="ITransportListener"/> public IAsyncResult BeginProcessRequest( string channeId, EndpointDescription endpointDescription, IServiceRequest request, AsyncCallback callback, object callbackData) { if (channeId == null) throw new ArgumentNullException("channeId"); if (request == null) throw new ArgumentNullException("request"); // create operation. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callback, callbackData, 0); SecureChannelContext context = new SecureChannelContext( channeId, endpointDescription, RequestEncoding.Binary); // begin invoke service. return result.BeginProcessRequest(context, request); }
/// <summary> /// Dispatches an incoming binary encoded request. /// </summary> public virtual IAsyncResult BeginInvokeService(InvokeServiceMessage message, AsyncCallback callack, object callbackData) { try { // check for bad data. if (message == null) { throw new ServiceResultException(StatusCodes.BadInvalidArgument); } // set the request context. SetRequestContext(RequestEncoding.Binary); // create handler. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callack, callbackData, 0); return result.BeginProcessRequest(SecureChannelContext.Current, message.InvokeServiceRequest); } catch (Exception e) { throw CreateSoapFault(null, e); } }
/// <summary> /// Asynchronously calls the DeleteReferences service. /// </summary> public virtual IAsyncResult BeginDeleteReferences(DeleteReferencesMessage message, AsyncCallback callback, object callbackData) { try { // check for bad data. if (message == null) throw new ArgumentNullException("message"); // set the request context. SetRequestContext(RequestEncoding.Xml); // create handler. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callback, callbackData, 0); return result.BeginProcessRequest(SecureChannelContext.Current, message.DeleteReferencesRequest); } catch (Exception e) { throw CreateSoapFault(message.DeleteReferencesRequest, e); } }
/// <summary> /// Asynchronously calls the Cancel service. /// </summary> public virtual IAsyncResult BeginCancel(CancelMessage message, AsyncCallback callback, object callbackData) { try { // OnRequestReceived(message.CancelRequest); // check for bad data. if (message == null) throw new ArgumentNullException("message"); // set the request context. SetRequestContext(RequestEncoding.Xml); // create handler. ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callback, callbackData, 0); return result.BeginProcessRequest(SecureChannelContext.Current, message.CancelRequest); } catch (Exception e) { Exception fault = CreateSoapFault(message.CancelRequest, e); // OnResponseFaultSent(fault); throw fault; } }