我在.Net中创建了一个服务,该服务按照计划的时间执行另一个文件夹中的XYZ.exe,该数据库从数据库获取数据并使用ODBC DSN将数据写入文件。我已经在我的笔记本电脑(Win 7)上安装了该服务,它具有良好的NT AUTHORITY \ SYSTEM权限。当我在Win 8.1和Win 10上安装相同的服务时,该过程会执行,但XYZ.exe文件已创建但无法将数据写入文件,从而出现错误,因为' [Microsoft] [ODBC Drive Manager]数据源名称找不到,也没有指定默认驱动程序'。但是当我手动执行XYZ.exe时,它会成功运行并将数据写入文件中。我尝试过访问服务。 Process / Service使用NT AUTHORITY \ SYSTEM权限执行。以下是代码
Process p = new Process();
p.StartInfo.FileName = this.m_FilePath;
p.StartInfo.WorkingDirectory = Path.GetDirectoryName(FilePath);
p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.Verb = "runas";
p.Start();
p.WaitForExit();
执行XYZ.exe似乎是权限问题。我尝试了各种选择。