Beispiel #1
0
 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);
 }