public virtual IAsyncResult BeginCall(CallMessage message, AsyncCallback callback, object callbackData)
{
try
{
OnRequestReceived(message.CallRequest);
// 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.CallRequest);
}
catch (Exception e)
{
Exception fault = CreateSoapFault(message.CallRequest, e);
OnResponseFaultSent(fault);
throw fault;
}
}