Skip to content

Commit dcc32b2

Browse files
Fixed: SentryHttpMessageHandler added when AddHttpClient is before UseSentry (#2390)
* Fixed #2373: SentryHttpMessageHandler not being added when AddHttpClient is before UseSentry Fixes #2373 * Updated changelog
1 parent 3e8edb7 commit dcc32b2

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
## Unreleased
44

5-
## Fixes
5+
### Fixes
66

7+
- SentryHttpMessageHandler added when AddHttpClient is before UseSentry ([#2390](https://github.com/getsentry/sentry-dotnet/pull/2390))
78
- Set the native sdk name for Android ([#2389](https://github.com/getsentry/sentry-dotnet/pull/2389))
89

910
## 3.33.0

src/Sentry.Extensions.Logging/Extensions/DependencyInjection/ServiceCollectionExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ public static IServiceCollection AddSentry<TOptions>(this IServiceCollection ser
4040

4141
// Custom handler for HttpClientFactory.
4242
// Must be singleton: https://github.com/getsentry/sentry-dotnet/issues/785
43-
services.TryAddSingleton<IHttpMessageHandlerBuilderFilter, SentryHttpMessageHandlerBuilderFilter>();
43+
// Must use AddSingleton: https://github.com/getsentry/sentry-dotnet/issues/2373
44+
services.AddSingleton<IHttpMessageHandlerBuilderFilter, SentryHttpMessageHandlerBuilderFilter>();
4445

4546
return services;
4647
}

src/Sentry.Extensions.Logging/SentryHttpMessageHandlerBuilderFilter.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ public Action<HttpMessageHandlerBuilder> Configure(Action<HttpMessageHandlerBuil
1414
handlerBuilder =>
1515
{
1616
var hub = _getHub();
17-
handlerBuilder.AdditionalHandlers.Add(new SentryHttpMessageHandler(hub));
17+
if (!handlerBuilder.AdditionalHandlers.Any(h => h is SentryHttpMessageHandler))
18+
{
19+
handlerBuilder.AdditionalHandlers.Add(
20+
new SentryHttpMessageHandler(hub)
21+
);
22+
}
23+
1824
next(handlerBuilder);
1925
};
2026
}

0 commit comments

Comments
 (0)