System.Web.HttpRuntime.Process C# (CSharp) Method

Process() static private method

static private Process ( HttpWorkerRequest req ) : void
req HttpWorkerRequest
return void
		static void Process (HttpWorkerRequest req)
		{
			bool error = false;
			if (firstRun) {
				firstRun = false;
				if (initialException != null) {
					FinishWithException (req, HttpException.NewWithCode ("Initial exception", initialException, WebEventCodes.RuntimeErrorRequestAbort));
					error = true;
				}
				SetupOfflineWatch ();
			}
			HttpContext context = new HttpContext (req);
			HttpContext.Current = context;
			if (AppIsOffline (context))
				return;
			
			//
			// Get application instance (create or reuse an instance of the correct class)
			//
			HttpApplication app = null;
			if (!error) {
				try {
					app = HttpApplicationFactory.GetApplication (context);
				} catch (Exception e) {
					FinishWithException (req, HttpException.NewWithCode (String.Empty, e, WebEventCodes.RuntimeErrorRequestAbort));
					error = true;
				}
			}
			
			if (error) {
				context.Request.ReleaseResources ();
				context.Response.ReleaseResources ();
				HttpContext.Current = null;
			} else {
				context.ApplicationInstance = app;
				req.SetEndOfSendNotification (end_of_send_cb, context);

				//
				// Ask application to service the request
				//
				
				IHttpHandler ihh = app;
//				IAsyncResult appiar = ihah.BeginProcessRequest (context, new AsyncCallback (request_processed), context);
//				ihah.EndProcessRequest (appiar);
				ihh.ProcessRequest (context);

				HttpApplicationFactory.Recycle (app);
			}
		}