Чтобы решить проблему с отправкой электронной почты через smtp-сервер, где сообщения электронной почты не отправляются, мне посоветовали включить ведение журнала с использованием System.Diagnosis.TextWriterTraceListener для отслеживания связи с smtp-сервером для отслеживания любых сообщений. ошибки. Я добавил следующее в мой web.config под узлом:
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.Net" >
<listeners>
<add name="MyTraceFile"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="MyTraceFile"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add
name="MyTraceFile"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="System.Net.trace.log" />
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose" />
<add name="System.Net.Sockets" value="Verbose" />
</switches>
</system.diagnostics>
Я опробовал его на своей машине для разработки, и он работал просто отлично! Я мог бы легко зачитать полную связь с smtp-сервером. Однако в производственной среде (работающей на IIS 6 в Windows 2003 Server) она вообще не работает. Никакой журнал не записывается в файловую систему. Сначала я подумал, что, возможно, учетная запись рабочего процесса ASP.NET (NETWORK SERVICE) не имеет достаточных прав для записи в файловую систему в указанном месте. Я исправил это, но до сих пор не получил лог. Во-вторых, я подумал, что, возможно, папка настроена на «только чтение» и исправил это. Но все равно я не пишу логи.
У кого-нибудь есть идея, в чем может быть проблема? Или, может быть, какой-нибудь совет, как я могу это исправить? Спасибо заранее!