private static void executeRoute(RouteData routeData, Response response, OwinRequestBody request) { var arguments = new OwinServiceArguments(routeData, request, response); var invoker = routeData.RouteHandler.As <FubuRouteHandler>().Invoker; var exceptionHandlingObserver = new ExceptionHandlingObserver(); arguments.Set(typeof(IExceptionHandlingObserver), exceptionHandlingObserver); var task = Task.Factory.StartNew(() => invoker.Invoke(arguments, routeData.Values)); task.ContinueWith(x => { try { x.FinishProcessingTask(exceptionHandlingObserver); } catch (Exception ex) { write500(response, ex); } finally { response.Finish(); } }); }
private static void executeRoute(RouteData routeData, Response response, OwinRequestBody request) { var arguments = new OwinServiceArguments(routeData, request, response); var invoker = routeData.RouteHandler.As <FubuRouteHandler>().Invoker; try { invoker.Invoke(arguments, routeData.Values); } catch (Exception ex) { write500(response, ex); } finally { response.Finish(); } }
private static void executeRoute(Request request, RouteData routeData, Response response, Action <Exception> fault) { var arguments = new OwinServiceArguments(routeData, request, response); var invoker = routeData.RouteHandler.As <FubuRouteHandler>().Invoker; try { invoker.Invoke(arguments, routeData.Values); } catch (Exception ex) { response.Status = "500"; response.Write("FubuMVC has detected an exception\r\n"); response.Write(ex.ToString()); } finally { response.Finish(); } }