Я обновляю программу для запуска с помощью службы 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)
Понятно, что использование локального пути позволяет мне запускать его прямо на сервере, а не через удаленную задачу. Есть ли способ указать серверный процесс, используя его полный путь к серверу, но чтобы сервер относился к нему так, как будто он был вызван локально?
Это другой сервер, нежели тот, на котором должно работать мое программное обеспечение.





Откуда запускается задача "GoAnywhere"?