У меня есть собственная служба WCF (VB), расположенная на сервере.У этой службы есть метод, который я вызываю из другого приложения, который должен запустить файл .cmd, который вызывает стороннюю программу.
Мой WCF использовал как старую команду Shell (), так и Process() объект.Оба могут вызывать файл .cmd (расположенный на локальном диске сервера).Файл .cmd выглядит следующим образом:
echo Before calling 3rd party app >> C:\HelloFubar.txt
cd C:\Program Files\Exstream\Dialog 6.1
Engine -CONTROLFILE=C:\Exstream\Development\LetterWriter\Control Files\Letter.opt
echo After calling 3rd party app >> C:\HelloFubar.txt
Теперь я знаю, что файл .cmd (сохраненный как Letter.cmd) запускается, потому что когда я проверяю txt-файл после тестирования моего приложения, операторы before / afterбыли написаны.Однако стороннее приложение не запускается.
Теперь странная часть - если я дважды щелкну по cmd-файлу из проводника, операторы теста будут записаны в текстовый файл, и стороннее приложение начнет работу.Отлично работает.
Я дважды проверил приложение и соответствующие файлы, чтобы убедиться, что у NETWORK_SERVICE есть разрешения, и моя служба работает под этой учетной записью.Так что это не похоже на проблему с правами.
Есть идеи?
Спасибо, Джейсон