【发布时间】:2011-12-14 14:50:54
【问题描述】:
我需要编写一个将文本写入文本文件的任务。这不应该太复杂是我首先想到的,但我很早就在某个地方犯了错误。该任务稍后应该以没有本地 Windows 帐户的用户身份运行,也许这也可能是一个问题,但我更早卡住了。我使用我(本地管理员,域用户)在 windows 任务计划程序中实现和运行任务,操作是运行 .exe,即使未登录也应运行任务。
exe中的代码如下所示
StreamWriter sw = null; 尝试 { sw = File.CreateText(@"C:\temp\test.txt"); sw.WriteLine("某事某事"); } 最后 { sw.Dispose(); }整个域都可以访问(temp-)文件夹,包括我和稍后运行任务的用户。
任务以错误代码 0xc0000005 结束,并且没有写入文本文件。我究竟做错了什么?没有文本文件!
提前致谢!
PS:任务背后的想法是让它以有权访问网络驱动器的用户身份运行,以便PC上的人可以访问存储在网络驱动器中的数据,就像连接到网络驱动器一样是一种痛苦。
【问题讨论】:
-
您应该始终处理,而不仅仅是异常处理。
-
这也可能会吞噬任何可能发生的异常。
-
似乎是什么问题?你实际上并没有说问题是什么。您遇到了哪些错误/异常?
-
System.Diagnostics.Trace.Listeners.Add(new System.Diagnostics.TextWriterTraceListener("C:\\temp\\test.txt")); System.Diagnostics.Trace.AutoFlush = true; System.Diagnostics.Trace.WriteLine("Something Something");似乎可以正常工作。为什么? -
@daniel:不是复制粘贴而是写在这里,实际代码中的dispose在finally块中。 @oded:编辑错误
标签: c# .net scheduled-tasks