1

我有一个应用程序,我通过它创建一个范围IServiceScopeFactory.CreateScope
从这个范围,我首先创建一个范围,ILogger<T>然后将一个范围添加到这个记录器。

var logScope = scopedLogger.BeginScope("SignalR connection. signalRConnectionId: {signalRConnectionId}", context.ConnectionId);

在此之后,我创建了各种服务(通过创建的范围),每个服务我都想保留我创建的日志记录范围
这最初工作得很好,我可以看到服务构造函数中记录的消息的范围。
但是,在以后的使用中,该服务拥有的记录器已经失去了作用域。
它没有被释放,IServiceScope 没有被释放,它只是消失了。
我的前提似乎是合理的,因为它在初始构造函数中有效,但在此过程中不知何故失去了它,我不明白为什么会这样。

4

0 回答 0