我已经看到在vnext中,CallContext使用了HttpContextAccessor,我尝试对小型owin依赖跟踪器使用相同的想法但是失败了。
我的中间件设置如下:
app.Use(async (ctx,next) =>
{
CallContext.LogicalSetData("BLABLABAL", new ObjectHandle(new request()));
await next();
});
并结合应用洞察遥测初始化器:
public class ItemCorrelationTelemetryInitializer : ITelemetryInitializer
{
public ItemCorrelationTelemetryInitializer()
{
}
public void Initialize(ITelemetry telemetry)
{
//telemetry is a dependencyTelemetry
var handle = CallContext.LogicalGetData("BLABLABAL") as ObjectHandle;
var test = handle != null ? handle.Unwrap() as request : null;
if(test != null)
telemetry.Context.Operation.Id = test.test;
}
}
但我的问题是句柄总是为空;
所以我的问题是,对于没有system.web的vnext或owin,当callcontext无法覆盖对象时,如何制作依赖关系跟踪模块,如上所示。