我目前正在开发一个使用 Azure 管道部署的 .NET 4.8 项目。该项目使用 Serilog 将日志写入 SQL 数据库,并且已经这样做了一段时间。 Serilog 逻辑如下:
//Initialize Logger
Log.Logger = new LoggerConfiguration()
.WriteTo.MSSqlServer(
connectionString: ConfigurationManager.ConnectionStrings["SerilogConnection"].ConnectionString,
sinkOptions: new MSSqlServerSinkOptions
{
TableName = "WEB_APIS_LOGS",
SchemaName = "dbo",
AutoCreateSqlTable = false
},
columnOptions: columnOpts
)
.CreateLogger();
如何使用 Serilog:
Log.Logger.Write(logEventLevel, "{Entity}{EntityId}{@ValidationResult}", "SalesOrder", order.OrderId, order.Rules);
上周我做了一个小更改,但不会影响任何日志记录逻辑,在我通过 Azure 管道部署它后,日志记录不再起作用。我尝试恢复到早期版本,但没有任何效果。我想这可能是因为我在这段时间更改了管道名称,但恢复回来后仍然没有运气。
我在本地启用了 Serilog 的自记录以查看弹出的内容,但收到错误“‘Microsoft.Data.SqlClient.InOutOfProcHelper’的类型初始值设定项引发了异常。”。我不确定这是否只是一个本地问题,但这是我可能知道问题所在的唯一线索。我能够很好地连接到数据库,并且没有触及任何项目包,所以我不知道为什么在这个特定版本之后会突然出现问题。这是一年多来的最新版本,所以也许与它有关,但同样没有对代码进行实质性更改,也没有对管道进行任何更改,所以我完全迷失了。
配置: 网页配置
<system.web>
<compilation debug="true" targetFramework="4.8" />
<httpRuntime targetFramework="4.6.1" />
</system.web>
包.config
<package id="Microsoft.Data.SqlClient" version="5.0.1" targetFramework="net48" />
我在服务器上添加了Serilog调试日志文件,出现了这个错误,所以原来是证书问题。
由于以下错误,无法将 1 个日志事件写入数据库:已成功与服务器建立连接,但在登录过程中发生错误。 (提供商:SSL 提供商,错误:0 - 证书链由不受信任的机构颁发。)