2011-03-01 144 views
1

我创建了一个Windows服务,它从远程机器访问文件。但它会在日志文件中出现文件不存在的错误。当我部署它然后只有它会给出错误,否则当我从Visual Studio 2005进行调试时,它工作正常。 我试图从登录选项卡更改服务的属性。给登录为:然后选择此帐户,并给出远程机器和密码的名称仍然无法正常工作。请帮助我。Windows服务访问远程机器文件时出现问题

代码:

if (File.Exists(FileName)) 
{ 


} 
else 
{ 
    Log.append("File Not Exist Path=:" + FileName, 75); 
} 

错误:

File Not Exist Path=: \Computer-01\Trend Till_04Feb\Trend Till_04Feb\TREND\128.DBF

+0

维沙尔,你的问题是很难理解的。我可以建议尝试重新格式化一下,并且明确说明你已经尝试过了吗?这听起来像是你想要访问远程计算机上的文件,并且它在运行时可以工作,但不能在作为服务运行时运行。这听起来像一个权限问题。 – 2011-03-01 06:28:27

+0

@Ryan Sorensen:是的瑞恩你明白的是对的。请告诉我如何解决权限问题? 在此先感谢 – vishal 2011-03-01 06:35:43

回答

0

我假设你正在使用ServiceProcessInstaller和的ServiceInstaller。

最重要的属性是ServiceProcessInstaller类中的Account。它指定服务运行的Windows帐户(安全上下文)。以下选项可用:

LocalService:Service将计算机的凭据提供给远程服务器。

LocalSystem:Service向远程服务器提供匿名凭证。

NetworkService:服务具有有限的本地权限并将计算机的凭据提供给远程服务器。

用户:指定本地或网络帐户。您可以通过属性指定必要的用户名和密码,或者您可以在安装时键入它们。该服务使用指定用户帐户的安全上下文。

以下三个选项用于指定您的服务如何启动。

手册: - 用户启动服务。

自动: - 服务在系统启动时自动启动。

已禁用: - 该服务不可用。

  1. 转到ServiceInstaller对象的属性并将ServiceName和StartType设置为Automatic。

  2. 转到ServiceProcessInstaller的属性并将Account属性设置为LocalService。这会导致服务在本地服务帐户上运行。

HTH