繁体   English   中英

尝试在文件夹中写入时,C#Windows Service Access被拒绝

[英]C# Windows Service Access denied when trying to write in a folder

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

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

任何建议将不胜感激

您以错误的方式使用String.Format() 查看msdn http://msdn.microsoft.com/zh-cn/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);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM