Pra*_*tik 2 c# windows-services network-protocols
我有在本地系统帐户下运行的 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");
}
Run Code Online (Sandbox Code Playgroud)
本地系统帐户 (LSA) 是特定于机器的帐户 - 虽然它在机器上具有很高的特权,但它在网络上没有任何特权。
要解决此问题:
您也不能100.100.1.1\f\Files\abc.txt用作文件的路径 - 首先尝试使用双反斜杠作为前缀:\\100.100.1.1\f\Files\abc.txt. 如果没有那个双反斜杠,操作系统将在您当前的工作目录中搜索一个名为 100.100.1.1 的文件夹。(请注意,您说这在普通用户凭据下有效 - 在这里复制代码时您弄错了或犯了错误)。