【发布时间】:2012-07-16 11:46:09
【问题描述】:
我是 .Net、C# 和 Visual Studio 的新手。现在我想使用 c# 开发 windows 服务应用程序。 Windows 服务需要将一些数据写入某个文件。 我正在使用 visual studio 2010。我使用 windows xp 作为我的操作系统。我创建了一个 windows service.its 安装程序等。
当我将windows服务安装在非默认文件夹(c盘除外)以外的文件夹中时,运行服务后会创建文件并写入文本文件成功。
当我在默认位置安装服务时(安装时我无法默认路径)(请参考附图)
然后在安装之后我运行服务。但是文件没有创建并且没有抛出异常。以下是文件的编码sn-p。
字符串 logPath = AppDomain.CurrentDomain.BaseDirectory + "log\CastrolSdWindowsService_Log.txt";
fs = new FileStream(logPath, FileMode.Append, FileAccess.Write);
fs.Write(bytes, 0, bytes.Length);
fs.Flush();
我找不到文件没有在 C 盘中创建的原因。请帮我 欢迎大家提出意见。
对于技术术语中的错误,我深表歉意,因为我是 .net 和 c# 的新手。我不知道正确的术语。
【问题讨论】:
-
看起来像是权限问题。服务的身份是什么?并且请不要写在 c:\program 文件中。选择另一个文件夹,例如 %APPDATA%。
-
你所说的身份是什么意思。我听不懂你的话。请给出更多解释,因为我是微软技术的新手。所以不要误会我。
-
服务将以用户身份运行。它可以是 SYSTEM、网络服务或特定用户帐户。
-
Program Files 文件夹由于病毒攻击等原因受到 Windows 的严格保护。将文件写入 Program Data 文件夹。
-
这和我前段时间遇到的问题差不多,见Windows Service with NLog
标签: c# .net visual-studio-2010 windows-services windows-xp