我有在本地系统帐户下运行的Windows服务。我正在检查File.Exist(网络中的文件)。这适用于用户帐户,但它对本地系统帐户中的file.exists()返回false。我无法使用用户帐户运行服务。提前谢谢。
protected override void OnStart(string[] args) {
m_objLogFile.LogError("******************Servicestarted*****************", "", "");
Thread th = new Thread(new ThreadStart(StartIndexing));
th.Start();
}
private void StartIndexing()
{
bool bVal = File.Exists(@"100.100.1.1\f\Files\abc.txt");
}
答案 0 :(得分:4)
本地系统帐户(LSA)是一个特定于计算机的帐户 - 虽然它在计算机上具有高权限,但它没有权限在网络上具有任何权限。
要解决此问题:
您也不能使用100.100.1.1\f\Files\abc.txt
作为文件的路径 - 首先尝试使用双反斜杠作为前缀:\\100.100.1.1\f\Files\abc.txt
。如果没有双反斜杠,操作系统将在您当前的工作目录中搜索名为100.100.1.1的文件夹。 (请注意,您说这可以在普通用户凭据下工作 - 要么您错了,要么在此处复制代码时出错了。)
答案 1 :(得分:-1)
模拟您的帐户以访问该文件。