Я хочу запустить Task
, чтобы сохранить журналы в таблице базы данных.
Но похоже, что HttpContext удален в другом потоке.
Вот мой код:
_ = Task.Run(() =>
{
using (var db = LogContext())
{
var request = new LoginLog
{
Url = context.HttpContext.Request.Path,
UserAgent = context.HttpContext?.Request?.Headers?[HeaderNames.UserAgent].ToString()
};
await db.AddAsync(request);
db.SaveChanges();
}
});
Вот исключение trackInfo:
at Microsoft.AspNetCore.Http.Features.FeatureReferences`1.ThrowContextDisposed()
at Microsoft.AspNetCore.Http.Features.FeatureReferences`1.Fetch[TFeature, TState](TFeature & cached, TState state, Func`2 factory)
at Microsoft.AspNetCore.Http.DefaultHttpRequest.get_Path()
at PowerMan.Applet.Api.Infrastructure.Filters.RequestFilter.<> c__DisplayClass4_0.< OnActionExecutionAsync > b__1() in / Users / zhaojing / Projects / PowerMan.Api / PowerMan / PowerMan.Applet / PowerMan.Applet.Api / Infrastructure / Filters / RequestFilter.cs:line 112
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.<> c.<.cctor > b__274_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
Это Задача, которая делает исключения?