0

我尝试在 LogNet 中使用 SmtpAppender:

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="user1@company.com,user2@company.com" />
      <from value="noreply@company.com" />
      <subject value="Error" />
      <smtpHost value="smtp.company.com" />
      <bufferSize value="512" />
      <lossy value="true" />
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="DEBUG"/>
      </evaluator>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
      </layout>
    </appender>

当我在 Log4net 中启用调试日志记录时,我收到以下错误:

log4net:错误 [SmtpAppender] 错误代码:GenericFailure。发送电子邮件通知时出错。System.Net.Mail.SmtpException:发送邮件失败。---> System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 尝试以访问权限禁止的方式访问套接字(来自 SMTP 的 IP-服务器):25 在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)在 System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败,套接字 s4,套接字 s6,套接字和套接字,IPAddress 和地址,ConnectSocketState 状态,IAsyncResult asyncResult , 异常和异常) --- 内部异常堆栈跟踪结束 --- 在 System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner,

然而。当我尝试从使用此 log4net 配置的程序中通过同一 SMTP 服务器发送邮件时:

MailMessage msg = new MailMessage(sender, recipients, subject, body);
mtpClient client = new SmtpClient("smtp.company.com", 25);
client.Send(msg);

一切正常。所以这不可能是一个简单的 SMTP-Server/FireWall-Issue。

SMTPAppender 的工作方式是否与 .NET 中的标准 StmpClient.Send() 不同,可能会导致此问题?

4

1 回答 1

0

@Bob Geiger 为我指出了 Log4net 似乎使用完全相同的机制的正确方向。

事实证明,这是一个 Virusscan/Spam-Protection 问题。只有定义的应用程序允许通过我们的 smtp 服务器发送邮件。虽然我们中的一个程序使用与 log4net 相同的后端 - 应用程序具有不同的文件名,因此允许发送邮件,而另一个程序则不允许。

我们必须允许病毒扫描配置中的特定 .exe 文件。

于 2017-10-11T13:21:44.197 回答