У меня есть служба, которая иногда вызывает пакетный файл. Пакетный файл занимает 5-10 секунд, чтобы выполнить:Служба зависает в WaitForExit после вызова командного файла
System.Diagnostics.Process proc = new System.Diagnostics.Process(); // Declare New Process
proc.StartInfo.FileName = fileName;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
файл существует и код работает, когда я запускаю тот же код в-консоли. Однако, когда он запускается внутри службы, он зависает на WaitForExit()
. Мне нужно убить командный файл из процесса, чтобы продолжить. (Я уверен, что файл существует, как я вижу его в списке процессов.)
Как я могу исправить эту зависание?
Update # 1:
код Кевина позволяет мне получить выход. Один из моих пакетных файлов все еще висит.
"C: \ EnterpriseDB \ Postgres \ 8.3 \ Bin \ pg_dump.exe" -i -h локальный -p 5432 -U Postgres -F -a р -D -v -f «C: \ backupcasecocher \ . backupdateevent2008.sql "-t "\" общественность \" \ "dateevent \" " "DBTEST"
другой пакетный файл:
" C: \ EnterpriseDB \ Postgres \ 8.3 \ bin \ vacuumdb.exe "-U postgres -d DbTest
Я проверил путь, и путь postgresql
в порядке. Каталог вывода существует и по-прежнему работает вне службы. Есть идеи?
Update # 2:
Вместо пути пакетного файла, я написал "C: \ EnterpriseDB \ Postgres \ 8.3 \ Bin \ pg_dump.exe" для proc.StartInfo.FileName
и добавлены все параметры proc.StartInfo.Arguments
. Результаты не изменяются, но я вижу pg_dump.exe
в окне процесса. Опять же это происходит только внутри службы.
Update # 3:
я запустить службу с пользователем в группе администраторов, но безрезультатно. Я восстановил null
имя пользователя сервиса и пароль
Update # 4:
Я создал простую службу, чтобы написать след в журнале событий и выполнить командный файл, который содержит «Dir» в нем. Теперь он будет зависать на proc.Start();
. Я попытался сменить учетную запись с LocalSystem на User, и я установил пароль администратора и пароль, но ничего.
@nzpcmad: Где у вас возникла идея сменить тег OP? – GEOCHET 2008-12-11 21:57:26
Я не nzpcmad, но я предполагаю: поскольку он говорит: «У меня есть веб-сервис», я предполагаю, что у него есть веб-служба (.asmx), а не служба Windows. – 2008-12-11 22:06:32
@ Майкл: Я не вижу, как это оправдывает/меняет/тег OP. – GEOCHET 2008-12-11 22:08:29