#c# #asp.net-core #hangfire
#c# #asp.net-core #hangfire
Вопрос:
Когда я ставлю в очередь задание с контроллера с помощью Hangfire, телеметрия не коррелируется в Application Insights:
public IActionResult Foo()
{
_backgroundJobClient.Enqueue<IFooService>(x => x.StartJob());
return StatusCode((int) HttpStatusCode.Accepted);
}
Для сравнения, журналы с этого контроллера будут иметь тот же operationId
:
public IActionResult Hello()
{
_logger.LogInformation("Hello.");
_logger.LogInformation("Hello 2.");
return Ok();
}
Кроме того, журналы из размещенной службы (рабочие нагрузки, отличные от HTTP) будут сопоставлены при создании операции вручную:
public class MyHostedService : IHostedService, IDisposable
{
public MyHostedService(ILogger<MyHostedService> logger)
{
_logger = logger;
}
public Task StartAsync(CancellationToken stoppingToken)
{
using var operationHolder = _telemetryClient.StartOperation<RequestTelemetry>("MyHostedService");
_logger.LogInformation("Running.");
...
}
}
Как сделать так, чтобы журналы в Application Insights были одинаковыми operationId
, когда задание ставится в очередь с контроллера?