private static void FinishRequest(WebHost host, NetHttpWorkerRequest wr, NetHttpContext context, Exception e)
        {
            var response = (NetHttpResponse)context.Response;

            if (e == null)
            {
                try { response.FinalFlushAtTheEndOfRequestProcessing(); }
                catch (Exception e2) { e = e2; }
            }
            if (e != null)
            {
                context.DisableCustomHttpEncoder = true;
                try
                {
                    try { response.ReportRuntimeError(e, true, false); }
                    catch (Exception e2) { response.ReportRuntimeError(e2, false, false); }
                    response.FinalFlushAtTheEndOfRequestProcessing();
                }
                catch { }
            }
            _firstRequestCompleted = true;
            int statusCode = response.StatusCode;

            //context.FinishRequestForCachedPathData(statusCode);
            try { wr.EndOfRequest(); }
            catch (Exception e3) { RaiseRuntimeError(e3, wr); }
            Console.WriteLine("d:Request");
            Interlocked.Decrement(ref host._activeRequests);
            if (WebHost.UseThreading)
            {
                if (host._requestQueue != null)
                {
                    host._requestQueue.ScheduleMoreWorkIfNeeded();
                }
            }
        }