我有一个Windows服务,其任务是在其预定时间到达时运行.exe
文件。该程序在我安装程序的所有设备下运行。运行该服务的用户具有所有必需的管理权限。
这是程序运行.exe
文件的代码。 Log()
函数将消息写入日志文件中。
Log("About to run the file...");
try
{
Process.Start(filePath, args);
Log("File Triggered!");
}
catch (Exception ex)
{
Log("Error.");
}
程序会一直运行,直到记录"关于运行文件......"然后没有任何事情发生,没有任何记录。这是非常奇怪的,知道完全相同的程序在我测试的所有其他环境中都能正常工作。
Process.Start()
是否可能无声且无错误地拒绝运行我的.exe
文件?目标.exe
文件放在与正在运行的服务完全相同的文件夹中,因此不会出现问题。
我服务的登录用户是否缺乏运行此文件的权限?如果是这样,为什么我们不会收到"错误"日志中的消息?非常感谢任何帮助!
更新1 :目标操作系统是Windows 8,我在Windows 7下开发了我的程序。
更新2 :我在另一台运行Windows 8.1的计算机上试用了该程序,但它运行正常。
答案 0 :(得分:0)
Windows Server 2012会阻止从其他位置复制的所有文件。所以我解锁了所有的程序文件。谢谢你的帮助。