我正在使用名为GoAnywhere的服务更新要启动的程序。该程序的先前版本在具有自己的第三方软件副本的服务器上作为计划任务运行。
我使用以下代码调用该过程:
ProcessStartInfo pI = new ProcessStartInfo();
pI.CreateNoWindow = true;
/*
* Tried: @\\server\path\to\process, @\\server\c$\path\to\process - generate errors on server
* Tried: @c:\local\path\process, @process - generate errors within GoAnywhere
*/
pI.FileName = @"c:\local\path\process";
pI.Arguments = string.Format("-u {0} -j {1}", "\"User\"", "\"JobName\"");
我可以直接在服务器上运行该软件(模仿最初的本地调度进程),但如果我通过GoAnywhere启动它,我会收到两个错误之一。
GoAnywhere任务运行我的软件,启动进程(@c:\ local \ path \ process)。但是,该过程因以下捕获的异常而失败。
System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at InsightCass.Program.Main(String[] args)
很明显,使用本地路径允许我直接在服务器上运行它,但不能通过远程任务运行它。有没有办法使用其完整的服务器路径来指示服务器进程,但让服务器将其视为在本地调用它?