我已在Windows 7计算机上成功部署了C#windows服务。
现在,当我尝试使用此代码创建文件时:
FileStream os = new FileStream(String.Format(folderName, fileName), FileMode.Create);
我对文件路径的访问被拒绝。
在服务安装程序中,我将以下参数设置为:
this.serviceProcessInstaller1.Account =
System.ServiceProcess.ServiceAccount.LocalSystem;
this.serviceProcessInstaller1.Password = "Pass";
this.serviceProcessInstaller1.Username = "Administrator"
我将所有可能拥有完全权限的帐户添加到我要创建文件的文件夹中,但没有任何帮助。
任何建议都将受到高度赞赏
答案 0 :(得分:0)
你以错误的方式使用String.Format()
。请看msdn http://msdn.microsoft.com/en-us/library/fht0f5be.aspx。
你可能想要像
这样的东西FileStream os = new FileStream(folderName +@"\" + fileName, FileMode.Create);
或
FileStream os = new FileStream(String.Format(@"{0}\{1}", folderName fileName), FileMode.Create);
或
FileStream os = new FileStream(Path.Combine(folderName fileName), FileMode.Create);
答案 1 :(得分:0)
可能不是答案。但首先,请记录服务尝试访问的确切路径。 然后,使用您提供给服务的凭据登录到计算机并尝试访问该路径。
string fullPath = String.Format(folderName, fileName);
logger.Write(fullPath);
FileStream os = new FileStream(fullPath, FileMode.Create);