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?

Atualização # 2:

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.

Atualização # 3:

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

Atualização # 4:

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.

questionAnswers(8)

yourAnswerToTheQuestion