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

尝试写入文件夹时,C#Windows服务访问被拒绝,c#,windows,service,C#,Windows,Service,我已在Windows7计算机上成功部署了一个C#windows服务 现在,当我尝试使用以下代码创建文件时: FileStream os = new FileStream(String.Format(folderName, fileName), FileMode.Create); 我对文件路径的访问被拒绝 在服务安装程序中,我将以下参数设置为: this.serviceProcessInstaller1.Account = System.ServiceProcess.S

我已在Windows7计算机上成功部署了一个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"
我已将所有可能的具有完全权限的帐户添加到要创建文件的文件夹中,但没有任何帮助


如果您以错误的方式使用
String.Format()
,我们将非常感谢您的任何建议。看

你可能想要像这样的东西

FileStream os = new FileStream(folderName  +@"\" + fileName, FileMode.Create);


您以错误的方式使用了
String.Format()
。看

你可能想要像这样的东西

FileStream os = new FileStream(folderName  +@"\" + fileName, FileMode.Create);


也许不是答案。但首先,记录服务试图访问的确切路径。 然后,使用您提供给服务的凭据登录到计算机并尝试访问该路径

string fullPath = String.Format(folderName, fileName);
logger.Write(fullPath);
FileStream os = new FileStream(fullPath, FileMode.Create);

也许不是答案。但首先,记录服务试图访问的确切路径。 然后,使用您提供给服务的凭据登录到计算机并尝试访问该路径

string fullPath = String.Format(folderName, fileName);
logger.Write(fullPath);
FileStream os = new FileStream(fullPath, FileMode.Create);

您是否在“管理工具”下的“服务”对话框中确认了您的服务使用的用户帐户?您是否在“管理工具”下的“服务”对话框中确认了您的服务使用的用户帐户?如果不知道“folderName”中存储了什么,我们不能说使用错误。例如:string folderName=“c:\user\{0}”\ \这将非常好。@Amby,对于具有该名称的变量,这不是一个合理的用法。arghhhh!我不小心用了格式而不是组合格式。现在效果很好。谢谢你的帮助,我同意。在这种情况下,我们甚至可以争论像“this.serviceProcessInstaller1”这样的变量名。如果不知道“folderName”中存储了什么,我们就不能说用法是错误的。例如:string folderName=“c:\user\{0}”\ \这将非常好。@Amby,对于具有该名称的变量,这不是一个合理的用法。arghhhh!我不小心用了格式而不是组合格式。现在效果很好。谢谢你的帮助,我同意。在这种情况下,我们甚至可以争论像“this.serviceProcessInstaller1”这样的变量名。我使用了上面建议的Path.Combine()。谢谢。我使用了上面建议的Path.Combine()。谢谢