/// <summary>
 /// Initiates an asynchronous call to the HTTP handler.
 /// </summary>
 /// <param name="context">An <see cref="T:System.Web.HttpContext"/> object that provides references to intrinsic server objects (for example, Request, Response, Session, and Server) used to service HTTP requests.</param>
 /// <param name="cb">The <see cref="T:System.AsyncCallback"/> to call when the asynchronous method call is complete. If <paramref name="cb"/> is null, the delegate is not called.</param>
 /// <param name="extraData">Any extra data needed to process the request.</param>
 /// <returns>
 /// An <see cref="T:System.IAsyncResult"/> that contains information about the status of the process.
 /// </returns>
 public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
 {
     var async = new JsonRpcStateAsync(cb, context);
     async.JsonRpc = GetJsonRpcString(context.Request);
     JsonRpcProcessor.Process(async,context.Request);
     return async;
 }