當我執行后臺作業,并試圖解決所有依賴項時,我得到了一個異常:
Microsoft.EntityFrameworkCore.Query[10100]
對上下文類型“MyProj”的查詢結果進行迭代時發生異常。達爾。應用程序上下文'。
System.ObjectDisposedException:無法訪問已釋放的上下文實例。此錯誤的一個常見原因是,處理通過依賴項注入解析的上下文實例,然后在應用程序的其他地方嘗試使用相同的上下文實例。如果對上下文實例調用“Dispose”,或將其包裝到using語句中,可能會發生這種情況。如果您使用的是依賴項注入,那么應該讓依賴項注入容器處理上下文實例。
對象名稱:“ApplicationContext”
at Microsoft.EntityFrameworkCore.DbContext.CheckDisposed()
at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()
我的代碼ConfigureServices(IServiceCollection services)
services.AddHangfire(cfg => cfg
.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
.UseSimpleAssemblyNameTypeSerializer()
.UseRecommendedSerializerSettings()
.UseMemoryStorage());
services.AddHangfireServer();
in Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider provider)
:
GlobalConfiguration.Configuration.UseActivator(new ContainerJobActivator(provider));
app.UseHangfireDashboard()
and
public class ContainerJobActivator : JobActivator
{
private IServiceProvider _container;
public ContainerJobActivator(IServiceProvider container)
{
_container = container;
}
public override object ActivateJob(Type type)
{
return _container.GetService(type);
}
}
My DBContext
services.AddEntityFrameworkNpgsql().
AddDbContext<ApplicationContext>(opt =>
opt.UseNpgsql("server=localhost;port=5432;database=database;uid=root;password=password;"));
我們需要在工作中解決問題,而不是得到服務