private void FinishRequestNotification(IIS7WorkerRequest wr, HttpContext context, ref RequestNotificationStatus status) { HttpApplication applicationInstance = context.ApplicationInstance; if (context.NotificationContext.RequestCompleted) status = RequestNotificationStatus.FinishRequest; context.ReportRuntimeErrorIfExists(ref status); if (status == RequestNotificationStatus.FinishRequest && (context.CurrentNotification == RequestNotification.LogRequest || context.CurrentNotification == RequestNotification.EndRequest)) status = RequestNotificationStatus.Continue; IntPtr requestContext = wr.RequestContext; bool sendHeaders = UnsafeIISMethods.MgdIsLastNotification(requestContext, status); try { context.Response.UpdateNativeResponse(sendHeaders); } catch (Exception ex) { wr.UnlockCachedResponseBytes(); context.AddError(ex); context.ReportRuntimeErrorIfExists(ref status); context.Response.UpdateNativeResponse(sendHeaders); } if (sendHeaders) context.FinishPipelineRequest(); if (status == RequestNotificationStatus.Pending) return; PipelineRuntime.DisposeHandler(context, requestContext, status); }