Implemente double check pattern for AspNetCoreCorrelationIdProvider

pull/827/head^2
Halil ibrahim Kalkan 7 years ago
parent d31893a709
commit c0a53b81df

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

Loading…
Cancel
Save