2013-08-03 3 views
3

Я настроил log4net с помощью smtpAppender (gmail). Странная проблема заключается в том, что smtpAppender не работает, когда я развертываю приложение в IIS 7.5.SmtpAppender log4net с помощью gmail smtp

Я попытался проверить соединение с gmail smtp, используя команду telnet. Поэтому я могу проверить, заблокировано ли что-либо, но тест работал нормально.

Мой журнал конфигурации:

<log4net> 
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <file value="C:\logs\MyLog.log"/> 
     <appendToFile value="true"/> 
     <maximumFileSize value="500KB"/> 
     <maxSizeRollBackups value="2"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level %logger - %message%newline"/> 
     </layout> 
    </appender> 
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net"> 
     <to value="[email protected]" /> 
     <from value="[email protected]" /> 
     <subject value="Error logging message" /> 
     <smtpHost value="smtp.gmail.com" /> 
     <port value="587"/> 
     <authentication value="Basic" /> 
     <username value="[email protected]"/> 
     <password value="password"/> 
     <EnableSsl value="true" /> 
     <bufferSize value="1" /> 
     <lossy value="true" /> 
     <evaluator type="log4net.Core.LevelEvaluator,log4net"> 
     <threshold value="ERROR" /> 
     </evaluator> 
     <layout type="log4net.Layout.PatternLayout,log4net"> 
     <conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="ALL"/> 
     <appender-ref ref="RollingFile"/> 
     <appender-ref ref="SmtpAppender"/> 
    </root> 
    </log4net> 

После отладки я нашел ниже исключение:

log4net:ERROR [SmtpAppender] ErrorCode: GenericFailure. Error occurred while sending e-mail notification. 
System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at 
    at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response) 
    at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from) 
    at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) 
    at System.Net.Mail.SmtpClient.Send(MailMessage message) 
    at log4net.Appender.SmtpAppender.SendEmail(String messageBody) 
    at log4net.Appender.SmtpAppender.SendBuffer(LoggingEvent[] events) 

ответ

4

Хотя это не является прямым ответом на ваш вопрос, я считаю, что это может помочь вам обнаружить проблема. Log4net терпит неудачу в молчании, и это по дизайну. Для того, чтобы получить информацию о том, что это неправильно, то вы могли бы позволить Log4Net отладку

How do I enable log4net internal debugging? Проверка на log4net часто задаваемые вопросы

+0

Thanks Claudio. После того, как я включил режим отладки log4net. Я нашел это исключение: System.Net.Mail.SmtpException: для SMTP-сервера требуется безопасное соединение или клиент не прошел аутентификацию. Ответ сервера: 5.5.1 Требуется аутентификация ... –

2

Проблема была на стороне сервера Gmail. Сервер Gmail блокировал мою электронную почту, потому что он подозревал адрес, в котором я использую свою учетную запись электронной почты.

0

необходимо настроить разрешение на отправку электронной почты из вашего приложения на портале разработчиков Google.

Смежные вопросы