Browse Source

Implemente double check pattern for AspNetCoreCorrelationIdProvider

pull/839/head
Halil ibrahim Kalkan 7 years ago
parent
commit
c0a53b81df
  1. 19
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AspNetCoreCorrelationIdProvider.cs

19
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AspNetCoreCorrelationIdProvider.cs

@ -27,18 +27,21 @@ namespace Volo.Abp.AspNetCore.Tracing
return CreateNewCorrelationId(); return CreateNewCorrelationId();
} }
lock (HttpContextAccessor.HttpContext.Request.Headers) string correlationId = HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName];
{
string correlationId = HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName];
if (correlationId.IsNullOrEmpty()) if (correlationId.IsNullOrEmpty())
{
lock (HttpContextAccessor.HttpContext.Request.Headers)
{ {
correlationId = CreateNewCorrelationId(); if (correlationId.IsNullOrEmpty())
HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName] = correlationId; {
correlationId = CreateNewCorrelationId();
HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName] = correlationId;
}
} }
return correlationId;
} }
return correlationId;
} }
protected virtual string CreateNewCorrelationId() protected virtual string CreateNewCorrelationId()

Loading…
Cancel
Save