1

次のようにlog4netを構成しました

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">

  <!-- Edit to change your filename here -->
  <file value="Logs\\rolling.log" />

  <appendToFile value="true" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <rollingStyle value="Date" />
  <datePattern value=".yyyy-MM-dd'.log'" />
  <maximumFileSize value="10MB" />

  <!-- %identity used for ASP.NET app, %username used for windows app. You can leave them as is or remove one of them accordingly -->
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="[%date{dd MMM yyyy HH:mm:ss fff}] [%5level] (%identity-%username) %message%newline" />
  </layout>
</appender>

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <to value="***" />
  <from value="***" />
  <subject value="****" />
  <smtpHost value="localhost" />
  <bufferSize value="1" />
  <lossy value="true" />
  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="ERROR"/>
  </evaluator>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="[%date{dd MMM yyyy HH:mm:ss fff}] [%5level] (%identity-%username) %message%newline" />
  </layout>
</appender>

<root>
  <!-- Edit to change level of logging here, under normal conditions this should be set to INFO, use DEBUG level for verbose logging -->
  <level value="INFO" />
  <appender-ref ref="RollingFile" />
  <appender-ref ref="SmtpAppender" />
</root>

ローリング ファイル アペンダは正常に動作しますが、SMTP アペンダは次のエラーで失敗します System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions [::1]:25

私が奇妙だと思うのは、エラーの最後の角括弧に構成からの SMTP ホストが含まれていないことです。私はそこに会うことを期待していましlocalhostた。

これをローカル マシンの smtp4dev に対して実行しています。

ありがとうございました!

4

1 に答える 1

0

[::1] 表記は、ループバック アドレスを表す IPV6 の方法です (ダブル コロン表記は、アドレスに情報を追加しない 0 を単に非表示にします)、メッセージは、アペンダーが localhost に到達しようとしていることを伝えるだけです。

エラー自体に関しては、使用するポートへのアクセスをウイルス対策がブロックしているか、ファイアウォールが接続を妨げていることが原因である可能性があります。これらのアプリケーションでブロックされたアクセスに関するメッセージがあるかどうかを確認してください。

于 2014-04-07T09:31:28.560 に答える