Serilog SQL日志发布后不起作用

问题描述 投票:0回答:1

没有人知道为什么Serilog(SQL Sink)在发布时会失败,但是可以在开发中使用吗?

在我的.NET 4.7应用程序中,我想包括使用Serilog登录到SQL数据库。过去,只有文件记录功能可以正常工作。

在开发中,我已经开始在我的启动文件中添加以下代码。当我在调试中运行此命令时,一切工作正常,记录已添加到SQL表中。

Serilog版本:Serilog 2.9.0,Serilog.Sinks.MSSqlServer 5.1.3

 ColumnOptions option = new ColumnOptions
        {
            DisableTriggers = true,
            AdditionalColumns = new List<SqlColumn>() { new SqlColumn() { ColumnName = "TraceIdentifier", DataType = SqlDbType.VarChar, DataLength = 50 }, new SqlColumn() { ColumnName = "Action", DataType = SqlDbType.VarChar, DataLength = -1 }, new SqlColumn() { ColumnName = "AppName", DataType = SqlDbType.VarChar, DataLength = 50 }, new SqlColumn() { ColumnName = "UserName", DataType = SqlDbType.VarChar, DataLength = -1 } }
        };
        option.Store.Remove(StandardColumn.MessageTemplate);
        option.Store.Remove(StandardColumn.Properties);

        Log.Logger = new LoggerConfiguration()
            .Enrich.FromLogContext()
            .WriteTo.MSSqlServer(ConfigurationManager.AppSettings["SqlLogging"], "Logs",
                autoCreateSqlTable: true, batchPostingLimit: 1000, period: new TimeSpan(0, 0, 0, 0, 15), columnOptions: option)
            //.Enrich.WithProperty("AppName", "Catalogs")
            .WriteTo.File(@"D:\Apps\LogCatalog.txt")
            .CreateLogger();

一旦代码发布并托管在IIS中,它将返回运行时错误。当我删除WriteTo.MSSqlServer时,它运行良好。因此,调试之间没有任何变化,但是一旦在服务器上发布,它就会失败。

c# .net sql-server serilog
1个回答
0
投票

似乎服务器上的.NET版本有问题。

© www.soinside.com 2019 - 2024. All rights reserved.