小编Cri*_*bAd的帖子

appsettings-configuration 中的 Serilog PushProperty 不起作用

ASP.NET Core 2.2.0| Serilog.AspNetCore 2.1.1|Serilog.Sinks.File 4.0.0

我正在 Program.cs 中初始化 Serilog,从 appsettings.json 读取配置并在 Startup.cs -> 配置中添加中间件。一些片段:

程序.cs

public static void Main(string[] args)
{
    Log.Logger = new LoggerConfiguration()
        .ReadFrom.Configuration(Configuration)
        .CreateLogger();

    try
    {
        Log.Information("Starting web host");
        CreateWebHostBuilder(args).Build().Run();
    }
    catch (Exception ex)
    {
        Log.Fatal(ex, "Host terminated unexpectedly");
    }
    finally
    {
        Log.CloseAndFlush();
    }
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseConfiguration(Configuration)
            .UseSerilog();
Run Code Online (Sandbox Code Playgroud)

启动文件

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment() || env.IsStaging())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error"); …
Run Code Online (Sandbox Code Playgroud)

c# serilog asp.net-core

5
推荐指数
1
解决办法
2274
查看次数

将DBContext放入IMemoryCache(.NET Core/EF Core)之后为什么要处理它

我正在尝试将一个db-data的子集放在IMemoryCache中,但是第二次调用该应用程序时,我收到一个错误:

ObjectDisposedException:无法访问已处置的对象.此错误的常见原因是处理从依赖项注入解析的上下文,然后尝试在应用程序的其他位置使用相同的上下文实例.如果您在上下文中调用Dispose()或将上下文包装在using语句中,则可能会发生这种情况.如果使用依赖项注入,则应该让依赖项注入容器负责处理上下文实例.对象名称:'WebDbContext'.

我的代码段:

    public class ArticleRepository : IArticleRepository
    {
        private readonly WebDbContext _WebDbContext;
        private readonly IMemoryCache _cache;

        public ArticleRepository(WebDbContext WebDbContext, IMemoryCache cache)
        {
            _WebDbContext = WebDbContext;
            _cache = cache;
        }

        public IQueryable<Articles> WebshopArticles
        {
            get
            {
                return _cache.GetOrCreate("WebshopArticles", entry =>
                {
                    entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(1);
                    return _WebDbContext.Article.Include(s => s.Details);
                });                
            }
        } 

        public IQueryable<Articles> GetArticles(string category)
        {
            return WebshopArticles.FirstOrDefault(s => s.Category == Category);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在第一次将它放入缓存后,看起来像DBContext.我怎么处理这个?

c# entity-framework .net-core asp.net-core

3
推荐指数
1
解决办法
432
查看次数

标签 统计

asp.net-core ×2

c# ×2

.net-core ×1

entity-framework ×1

serilog ×1