要解決通過smtp服務器發送電子郵件沒有發送電子郵件的問題,我建議使用System.Diagnosis啓用日誌記錄.TextWriterTraceListener跟蹤與smtp服務器的通信以跟蹤任何錯誤。我添加了以下內容到我的web.config節點下:System.Diagnosis.TextWriterTraceListener問題沒有寫任何日誌到文件系統
<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工作進程帳戶(NETWORK SERVICE)可能沒有足夠的權限寫入指定位置的文件系統。我修正了這個問題,但仍然沒有記錄。其次,我認爲可能該文件夾被設置爲「只讀」並修復。但是我仍然沒有寫日誌。
不要任何人有一個想法,這個問題可能是什麼?或者,我可以怎樣解決這個問題呢?感謝提前!
是的,它在開發和生產中都是一樣的。我還通過在完全相同的版本上啓用跟蹤來驗證,但是在不同的生產環境中,並且在那裏工作得很好。謝謝你的提示! – 2010-02-01 14:48:13