2

我有一个配置文件来记录到 SQL 服务器数据库。当我使用 sql 帐户时,日志记录工作正常,但我需要使用 windows 帐户来访问数据库。因此,我更改了配置文件以包含 SecurityContext。

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=SERVER;initial catalog=DB;integrated security=false;persist security info=True" />
<securityContext type="log4net.Util.WindowsSecurityContext">
  <domain value ="DOMAIN"/>
  <userName value="USER" />
  <password value="PASSWORD" />      
</securityContext>

但这不起作用。我打开了内部日志,令我惊讶的是我得到了

log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [domain] to set object on [log4net.Util.WindowsSecurityContext]

但是我在securityContext中定义了域。为什么它无法识别我的域?

4

1 回答 1

0

遇到同样的问题后,我发现最有可能的解决方案是将属性重命名domaindomainName. 备查:

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
    <bufferSize value="1" />
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <connectionString value="data source=SERVER;initial catalog=DB;integrated security=false;persist security info=True" />
    <securityContext type="log4net.Util.WindowsSecurityContext">
        <domainName value="DOMAIN" />
        <userName value="USER" />
        <password value="PASSWORD" />      
    </securityContext>
</appender>
于 2014-08-07T08:35:06.513 回答