O serviço desliga no WaitForExit após chamar o arquivo em lotes
Eu tenho um serviço que às vezes chama um arquivo em lotes. O arquivo em lote leva de 5 a 10 segundos para executar:
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();
O arquivo existe e o código funciona quando eu executo o mesmo código no console. No entanto, quando executado dentro do serviço, ele desliga emWaitForExit()
. Eu tenho que matar o arquivo em lotes do processo para continuar. (Estou certo de que o arquivo existe, como posso vê-lo na lista de processos.)
Como posso consertar esse desligamento?
Atualização # 1:O código de Kevin me permite obter saída. Um dos meus arquivos em lote ainda está pendurado.
"C: \ EnterpriseDB \ Postgres \ 8.3 \ bin \ pg_dump.exe" -i -h localhost -p 5432 -U postgres -Fp -a -D -v -f "c: \ backupcasecocher \ backupdateevent2008.sql" -t "\" público \ ". \" dateevent \ "" "DbTest"
O outro arquivo em lotes é:
"C: \ EnterpriseDB \ Postgres \ 8.3 \ bin \ vacuumdb.exe" -U postgres -d DbTest
Eu verifiquei o caminho e opostgresql
caminho está bom. O diretório de saída existe e ainda funciona fora do serviço. Alguma ideia?
Em vez do caminho do arquivo em lotes, escrevi o "C: \ EnterpriseDB \ Postgres \ 8.3 \ bin \ pg_dump.exe" para o arquivoproc.StartInfo.FileName
e adicionou todos os parâmetros paraproc.StartInfo.Arguments
. Os resultados permanecem inalterados, mas vejo opg_dump.exe
na janela do processo. Novamente, isso só acontece dentro do serviço.
Eu executei o serviço com um usuário no grupo de administradores, sem sucesso. Eu restaureinull
para o nome de usuário e senha do serviço
Criei um serviço simples para gravar um rastreamento no log de eventos e executar um arquivo em lotes que contém "dir" nele. Agora ficará pendurado àsproc.Start();
- Tentei alterar a conta de LocalSystem paraDo utilizador e defini o usuário e a senha do administrador, ainda nada.