使用 "Trust server certificate=true"配置 log4net 连接字符串 AdoNetAppender



我想配置一个log4net AdoNetAppender。

我试图在我的log4net中用这样的东西来参数化它。配置文件:

<appender name="DatabaseAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<connectionString value="data source=MyServer;initial catalog=MyDataBase;integrated security=false;User ID=MyLogin;Password=MyPassword;Trust Server Certificate=True"/>
...

但是当我运行我的应用程序时,如果我设置log4net.Internal。调试到true,我在调试输出中得到这个错误

系统。ArgumentException: Not supported keyword: 'trust server certificate'.

当然,如果我删除"信任服务器证书"= true从连接字符串来看,它不起作用,因为我的服务器拒绝连接。我试图将连接字符串放在app.config中,并通过节点引用它,而不是在log4net中指定它。配置文件,但这是相同的。我测试了在我的代码中使用它,那里,它工作。

有没有人有一个想法,要么设置信任服务器证书为True为log4net,或使用另一种方式,使我的连接工作而不指定它?

正如@squillman所说,trustservercertificate不应该包含空格。这就是我的问题的根源。

我们可以注意到,令人惊讶的是,System.Data.SqlClient.SqlConnection似乎接受它与空格(这就是为什么当我测试它时我不明白为什么它工作…)

最新更新