gpt4 book ai didi

.net - System.Diagnostics.TextWriterTraceListener无法将任何日志写入文件系统的问题

转载 作者:行者123 更新时间:2023-12-04 07:29:57 30 4
gpt4 key购买 nike

为了解决通过不发送电子邮件的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服务器的完整通信。但是,在生产环境(在Windows 2003 Server中的IIS 6上运行)上,它根本不起作用。没有日志写入文件系统。我的第一个想法是,也许ASP.NET辅助进程帐户(NETWORK SERVICE)没有足够的权限写入指定位置的文件系统。我已解决该问题,但仍未获得任何日志。其次,我认为也许该文件夹被设置为“只读”,并且也对此进行了修复。但是我仍然没有写任何日志。

有谁知道可能是什么问题?或关于如何解决此问题的一些建议?提前感谢!

最佳答案

首先,我将检查跟踪是否确实有效,而无需将任何内容写入文件系统。也就是说,我只使用常规的Windows跟踪。为了查看跟踪输出,我将使用Windows Sysinternals' DebugView。当然,也许您应该更改配置文件,但我对语法并不熟悉。

现在,如果在两种环境(开发和生产)下一切正常,以便您可以在查看器中查看跟踪消息,那么问题将更多地集中在文件系统和日志保存上。

您认为您的日志文件保存在哪里?当涉及到生产环境时,可能是一个不同的位置。我认为在Windows Server 2003上,您应该在WinDir下的某个位置而不是Web应用程序的文件夹中查找文件。

在调试此类问题时,我会将IIS的帐户升级为本地/域管理员,以查看问题是否得到解决。如果解决了,则这里存在权限问题。

祝你好运!

关于.net - System.Diagnostics.TextWriterTraceListener无法将任何日志写入文件系统的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2154804/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com