From 3a868d87a2458fd025ca71e2538b3a72f67c7c50 Mon Sep 17 00:00:00 2001 From: Mikael Mengistu Date: Mon, 12 Sep 2016 14:50:59 -0700 Subject: [PATCH] Added IExceptionHandlerPathFeature interface. --- .../IExceptionHandlerPathFeature.cs | 17 +++++++++++++++++ .../ExceptionHandler/ExceptionHandlerFeature.cs | 4 +++- .../ExceptionHandlerMiddleware.cs | 6 ++++-- 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 src/Microsoft.AspNetCore.Diagnostics.Abstractions/IExceptionHandlerPathFeature.cs diff --git a/src/Microsoft.AspNetCore.Diagnostics.Abstractions/IExceptionHandlerPathFeature.cs b/src/Microsoft.AspNetCore.Diagnostics.Abstractions/IExceptionHandlerPathFeature.cs new file mode 100644 index 0000000000..7de318da8c --- /dev/null +++ b/src/Microsoft.AspNetCore.Diagnostics.Abstractions/IExceptionHandlerPathFeature.cs @@ -0,0 +1,17 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Diagnostics +{ + /// + /// Represents an exception handler with the original path of the request. + /// + public interface IExceptionHandlerPathFeature : IExceptionHandlerFeature + { + /// + /// The portion of the request path that identifies the requested resource. The value + /// is un-escaped. + /// + string Path { get; } + } +} diff --git a/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerFeature.cs b/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerFeature.cs index e4a9040c81..f01fb6a1ab 100644 --- a/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerFeature.cs +++ b/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerFeature.cs @@ -5,8 +5,10 @@ using System; namespace Microsoft.AspNetCore.Diagnostics { - public class ExceptionHandlerFeature : IExceptionHandlerFeature + public class ExceptionHandlerFeature : IExceptionHandlerPathFeature { public Exception Error { get; set; } + + public string Path { get; set; } } } \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerMiddleware.cs b/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerMiddleware.cs index 11f370ad73..b7f81f00ba 100644 --- a/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerMiddleware.cs +++ b/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerMiddleware.cs @@ -22,8 +22,8 @@ namespace Microsoft.AspNetCore.Diagnostics private readonly DiagnosticSource _diagnosticSource; public ExceptionHandlerMiddleware( - RequestDelegate next, - ILoggerFactory loggerFactory, + RequestDelegate next, + ILoggerFactory loggerFactory, IOptions options, DiagnosticSource diagnosticSource) { @@ -65,8 +65,10 @@ namespace Microsoft.AspNetCore.Diagnostics var exceptionHandlerFeature = new ExceptionHandlerFeature() { Error = ex, + Path = originalPath.Value, }; context.Features.Set(exceptionHandlerFeature); + context.Features.Set(exceptionHandlerFeature); context.Response.StatusCode = 500; context.Response.OnStarting(_clearCacheHeadersDelegate, context.Response);