public IAsyncResult BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, object extraData) { if (httpContext == null) { throw new ArgumentNullException("httpContext"); } try { OwinAppContext appContext = _appAccessor.Invoke(); if (appContext == null) { throw new EntryPointNotFoundException(Resources.Exception_NoOwinEntryPointFound); } // REVIEW: the httpContext.Request.RequestContext may be used here if public property unassigned? RequestContext requestContext = _requestContext ?? new RequestContext(httpContext, new RouteData()); string requestPathBase = _pathBase; string requestPath = _requestPath ?? httpContext.Request.AppRelativeCurrentExecutionFilePath.Substring(1) + httpContext.Request.PathInfo; OwinCallContext callContext = appContext.CreateCallContext( requestContext, requestPathBase, requestPath, callback, extraData); try { callContext.Execute(); } catch (Exception ex) { callContext.AsyncResult.Complete(true, ErrorState.Capture(ex)); } return(callContext.AsyncResult); } catch (Exception ex) { var failedAsyncResult = new CallContextAsyncResult(null, callback, extraData); failedAsyncResult.Complete(true, ErrorState.Capture(ex)); return(failedAsyncResult); } }
internal OwinCallContext( OwinAppContext appContext, RequestContext requestContext, string requestPathBase, string requestPath, AsyncCallback cb, object extraData) { _appContext = appContext; _requestContext = requestContext; _requestPathBase = requestPathBase; _requestPath = requestPath; AsyncResult = new CallContextAsyncResult(this, cb, extraData); _httpContext = _requestContext.HttpContext; _httpRequest = _httpContext.Request; _httpResponse = _httpContext.Response; }
internal OwinCallContext( OwinAppContext appContext, RequestContext requestContext, string requestPathBase, string requestPath, AsyncCallback cb, object extraData) { _trace = TraceFactory.Create(TraceName); _appContext = appContext; _requestContext = requestContext; _requestPathBase = requestPathBase; _requestPath = requestPath; AsyncResult = new CallContextAsyncResult(this, cb, extraData); _httpContext = _requestContext.HttpContext; _httpRequest = _httpContext.Request; _httpResponse = _httpContext.Response; }
internal OwinCallContext( OwinAppContext appContext, RequestContext requestContext, string requestPathBase, string requestPath, AsyncCallback cb, object extraData) { _appContext = appContext; _requestContext = requestContext; _requestPathBase = requestPathBase; _requestPath = requestPath; AsyncResult = new CallContextAsyncResult(this, cb, extraData); _httpContext = _requestContext.HttpContext; _httpRequest = _httpContext.Request; _httpResponse = _httpContext.Response; _disconnectWatcher = new DisconnectWatcher(_httpResponse); }
internal OwinCallContext( OwinAppContext appContext, RequestContext requestContext, string requestPathBase, string requestPath, AsyncCallback cb, object extraData) { _appContext = appContext; _requestContext = requestContext; _requestPathBase = requestPathBase; _requestPath = requestPath; AsyncResult = new CallContextAsyncResult(this, cb, extraData); _httpContext = _requestContext.HttpContext; _httpRequest = _httpContext.Request; _httpResponse = _httpContext.Response; _disconnectWatcher = new DisconnectWatcher(_httpResponse); RegisterForOnSendingHeaders(); }
/// <summary> /// Provides an asynchronous process End method when the process ends. /// </summary> /// <param name="result"> /// An System.IAsyncResult that contains information about the status of the process. /// </param> public void EndProcessRequest(IAsyncResult result) { CallContextAsyncResult.End(result); }
public IAsyncResult BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, object extraData) { if (httpContext == null) { throw new ArgumentNullException("httpContext"); } try { OwinAppContext appContext = _appAccessor.Invoke(); Contract.Assert(appContext != null); // REVIEW: the httpContext.Request.RequestContext may be used here if public property unassigned? RequestContext requestContext = _requestContext ?? new RequestContext(httpContext, new RouteData()); string requestPathBase = _pathBase; string requestPath = _requestPath ?? httpContext.Request.AppRelativeCurrentExecutionFilePath.Substring(1) + httpContext.Request.PathInfo; OwinCallContext callContext = appContext.CreateCallContext( requestContext, requestPathBase, requestPath, callback, extraData); try { callContext.Execute(); } catch (Exception ex) { if (!callContext.TryRelayExceptionToIntegratedPipeline(true, ex)) { callContext.Complete(true, ErrorState.Capture(ex)); } } return callContext.AsyncResult; } catch (Exception ex) { var failedAsyncResult = new CallContextAsyncResult(null, callback, extraData); failedAsyncResult.Complete(true, ErrorState.Capture(ex)); return failedAsyncResult; } }