为了解决通过 smtp-server 发送电子邮件的问题,其中没有发送电子邮件,建议我使用 System.Diagnosis.TextWriterTraceListener 启用日志记录,以跟踪与 smtp-server 的通信以跟踪任何错误。我在节点下的 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 服务器的完整通信。但是,在生产环境(在 Windows 2003 Server 的 IIS 6 上运行),它根本不起作用。没有日志被写入文件系统。我的第一个想法是,也许 ASP.NET 工作进程帐户(网络服务)没有足够的权限来写入指定位置的文件系统。我解决了这个问题,但仍然没有日志。其次,我认为也许该文件夹被设置为“只读”并修复了它。但我仍然没有写日志。
有谁知道问题可能是什么?或者关于如何解决这个问题的一些建议?提前谢谢!