2 c# file-permissions windows-services
我在VS 2010中使用"new ... c#service"菜单创建了一个Windows服务.在构造函数中,我有:
TextWriterTraceListener tr1 = new TextWriterTraceListener( System.IO.File.CreateText("d:\\output\\test.log"));
Trace.Listeners.Add(tr1);
Trace.WriteLine("Created");
Run Code Online (Sandbox Code Playgroud)
将服务设置为在LocalService或LocalSystem帐户(WinXP)中运行我获取服务启动时创建的文件,但它始终为空.向析构函数添加Flush()调用没有帮助.我在OnStart/OnStop/OnPause/OnContinue方法中有更多的跟踪调用.
(编辑)我已经跟踪和调试项目启用-跟踪输出文件被创建,它只是空的.
该服务将从数据库中提取记录,并将文件写入磁盘以用于我们必须与之交互的消息传递系统.因此,日志文件问题只是更广泛问题的第一个实例 - 我需要能够写入用户选择的消息传递目录.
这看起来像另一个问题的症状,但我也得到了问题LocalSystem(我认为有太多的权限所以被弃用).
谢谢你的帮助
您确定已TRACE为项目定义了符号吗?所有System.Diagnostics.Trace代码都是基于此符号有条件地编译的.请注意,您仍需要刷新跟踪输出以确保写入所有行(或设置Trace.AutoFlush为true).
作为旁注,我建议不要使用静态Trace方法,并建议至少使用System.Diagnostics.TraceSource.
| 归档时间: |
|
| 查看次数: |
5217 次 |
| 最近记录: |