如何使用 appsettings.json 在 Serilog 中禁用服务器证书验证?

How can I disable server certificate validation in Serilog using appsettings.json?

在 serilog 中使用电子邮件接收器时出现错误

发送电子邮件失败:System.Security.Authentication.AuthenticationException:根据验证程序,远程证书无效。

通过代码,我可以在 EmailConnectionInfo 上提供:

ServerCertificateValidationCallback = (s, certificate, chain, sslPolicyErrors) => true

但我正在使用 appsettings.json 加载 Serilog 配置。

是否可以通过 appsettings.json 以某种方式提供它?

我尝试了(在下面的示例中删除了敏感字段)但没有成功,同样的错误:

"Serilog": {
    "Using": [ "Serilog.Sinks.Email" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "Email",
        "Args": {
          "connectionInfo": {
            "FromEmail": "",
            "ToEmail": "",
            "MailServer": "",
            "EmailSubject": "",
            "serverCertificateValidationCallback": "(s, cert, chain, sslPolicyErrors) => true"
          }
        }
      }
    ]
  }

目前无法通过配置配置 ServerCertificateValidationCallback。您必须通过代码对其进行配置。

您可以在 Serilog.Settings.Configuration repository to track a feature request for configuring callbacks via configuration files and/or open an issue in the Serilog.Sinks.Email repository 中提出问题,看看将来是否可以实施解决方法。