尝试写入文件夹时C#Windows服务访问被拒绝

时间:2010-06-07 16:24:47

标签: c# windows service

我已在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"

我将所有可能拥有完全权限的帐户添加到我要创建文件的文件夹中,但没有任何帮助。

任何建议都将受到高度赞赏

2 个答案:

答案 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);