新 Azure 版本后 Serilog 无法工作:“Microsoft.Data.SqlClient.InOutOfProcHelper”的类型初始值设定项引发异常

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

我目前正在开发一个使用 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" />
azure iis serilog sqlclient
1个回答
0
投票

我在服务器上添加了Serilog调试日志文件,出现了这个错误,所以原来是证书问题。

由于以下错误,无法将 1 个日志事件写入数据库:已成功与服务器建立连接,但在登录过程中发生错误。 (提供商:SSL 提供商,错误:0 - 证书链由不受信任的机构颁发。)

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