我尝试在 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() 不同,可能会导致此问题?