Skip to content

Commit 27f9373

Browse files
author
Chris Santero
committed
Pass same ExceptionlessClient to WebApi exception filter
This ensures that exceptions handled by the WebApi ExceptionlessHandleErrorAttribute are processed by the same ExceptionlessClient that was passed to RegisterWebApi.
1 parent 76f387e commit 27f9373

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

Source/Platforms/WebApi/ExceptionlessHandleErrorAttribute.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,21 @@
88

99
namespace Exceptionless.WebApi {
1010
public class ExceptionlessHandleErrorAttribute : IExceptionFilter {
11+
private readonly ExceptionlessClient _client;
12+
1113
public bool HasWrappedFilter { get { return WrappedFilter != null; } }
1214

1315
public IExceptionFilter WrappedFilter { get; set; }
1416
public bool AllowMultiple { get { return HasWrappedFilter && WrappedFilter.AllowMultiple; } }
1517

18+
public ExceptionlessHandleErrorAttribute() : this(ExceptionlessClient.Default) {
19+
20+
}
21+
22+
public ExceptionlessHandleErrorAttribute(ExceptionlessClient client) {
23+
_client = client;
24+
}
25+
1626
public virtual void OnHttpException(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {
1727
if (HasWrappedFilter)
1828
WrappedFilter.ExecuteExceptionFilterAsync(actionExecutedContext, cancellationToken);
@@ -22,7 +32,7 @@ public virtual void OnHttpException(HttpActionExecutedContext actionExecutedCont
2232
contextData.SetSubmissionMethod("ExceptionHttpFilter");
2333
contextData.Add("HttpActionContext", actionExecutedContext.ActionContext);
2434

25-
actionExecutedContext.Exception.ToExceptionless(contextData).Submit();
35+
actionExecutedContext.Exception.ToExceptionless(contextData, client: _client).Submit();
2636
}
2737

2838
public Task ExecuteExceptionFilterAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) {

Source/Platforms/WebApi/ExceptionlessWebApiExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void RegisterWebApi(this ExceptionlessClient client, HttpConfigura
2525
config.Services.Add(typeof(IExceptionLogger), new ExceptionlessExceptionLogger());
2626
#endif
2727

28-
ReplaceHttpErrorHandler(config);
28+
ReplaceHttpErrorHandler(config, client);
2929
}
3030

3131
/// <summary>
@@ -37,9 +37,9 @@ public static void UnregisterWebApi(this ExceptionlessClient client) {
3737
client.Configuration.RemovePlugin<ExceptionlessWebApiPlugin>();
3838
}
3939

40-
private static void ReplaceHttpErrorHandler(HttpConfiguration config) {
40+
private static void ReplaceHttpErrorHandler(HttpConfiguration config, ExceptionlessClient exceptionlessClient) {
4141
FilterInfo filter = config.Filters.FirstOrDefault(f => f.Instance is IExceptionFilter);
42-
var handler = new ExceptionlessHandleErrorAttribute();
42+
var handler = new ExceptionlessHandleErrorAttribute(exceptionlessClient);
4343

4444
if (filter != null) {
4545
if (filter.Instance is ExceptionlessHandleErrorAttribute)

0 commit comments

Comments
 (0)