public void ProcessRequest(HttpApplication context)
        {
            if (_host == null)
            {
                return;
            }
            if (context.Request.ContentType == ContentType.AMF)
            {
                _host.CompressContent(context);
                context.Response.Clear();
                context.Response.ContentType = ContentType.AMF;
                //ThreadContext.Properties["ClientIP"] = HttpContext.Current.Request.UserHostAddress;
                // NOTE TODO Common.Logging push ip into ClientIP variable
                if (Log.IsDebugEnabled)
                {
                    Log.Debug(__Res.GetString(__Res.Amf_Begin));
                }
                try
                {
                    FluorineWebContext.Initialize();

                    if (_host.MessageServer != null)
                    {
                        _host.MessageServer.Service();
                    }
                    else
                    {
                        if (Log.IsFatalEnabled)
                        {
                            Log.Fatal(__Res.GetString(__Res.MessageServer_AccessFail));
                        }
                    }

                    if (Log.IsDebugEnabled)
                    {
                        Log.Debug(__Res.GetString(__Res.Amf_End));
                    }

                    // Causes ASP.NET to bypass all events and filtering in the HTTP pipeline chain of execution and directly execute the EndRequest event
                    context.CompleteRequest();
                }
                catch (Exception ex)
                {
                    Log.Fatal(__Res.GetString(__Res.Amf_Fatal), ex);
                    context.Response.Clear();
                    context.Response.ClearHeaders();//FluorineHttpApplicationContext modifies headers
                    context.Response.Status = __Res.GetString(__Res.Amf_Fatal404) + " " + ex.Message;
                    // Causes ASP.NET to bypass all events and filtering in the HTTP pipeline chain of execution and directly execute the EndRequest event
                    context.CompleteRequest();
                }
            }
        }