Итак, у меня есть WCF
сервер, работающий на удаленной машине.
Этот сервер получил простую строку в качестве аргумента, и я хочу, чтобы этот аргумент выполнялся через command line
.
Это функция на стороне сервера, которая должна выполнить command
:
public void ExecuteCmdCommand(string arguments)
{
log.Info(arguments);
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Maximized;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = arguments;
log.Debug(startInfo.Arguments);
process.StartInfo = startInfo;
process.OutputDataReceived += (sender, args) =>
{
log.Info(args.Data);
};
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
}
Как вы можете видеть в начале этого function
, я печатаю к моему console
полученному command
.
Итак, я пытаюсь запустить notepad
путем передачи аргумента notepad
, через консоль я вижу, что команда получена на стороне сервера, поэтому я могу быть уверен, что связь работает, но ничего не произошло.
Что я делаю не так? та же команда на моей локальной машине запускает notepad
.
Обновление
OK notepad
работает нормально (также без .exe
в конце), но когда я посылаю команду appium
(я хочу запустить мой appium
сервер), я получаю этот er r
или при отправке от command
до server
(но server
получила команду 'appium'):
System.ServiceModel.FaultException: «Серверу не удалось обработать
запрос из-за внутренней ошибки. Для получения дополнительной информации о
ошибка, либо включите IncludeExceptionDetailInFaults (либо из
ServiceBehaviorAttribute или из конфигурации
поведение) на сервере для отправки информации об исключении
вернуться к клиенту или включить трассировку в соответствии с Microsoft .NET
Framework SDK: документация и проверка журналов трассировки сервера. '