public void ProcessRequest (HttpContext context)
{
EnsureServiceHost ();
var table = HttpListenerManagerTable.GetOrCreate (host);
var manager = table.GetOrCreateManager (context.Request.Url);
if (manager == null)
manager = table.GetOrCreateManager (host.BaseAddresses [0]);
var wait = new ManualResetEvent (false);
wcf_wait_handles [context] = wait;
manager.ProcessNewContext (new System.ServiceModel.Channels.Http.AspNetHttpContextInfo (this, context));
// This method must not return until the RequestContext
// explicitly finishes replying. Otherwise xsp will
// close the connection after this method call.
wait.WaitOne ();
}