O programa de console C# não pode enviar fax quando executado como uma tarefa agendada

StackOverflow https://stackoverflow.com/questions/37189

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu tenho um programa de console escrito em C# que estou usando para enviar faxes.Quando passo pelo programa no Visual Studio, ele funciona bem.Quando clico duas vezes no programa no Windows Explorer, ele funciona bem.Quando eu configuro uma tarefa agendada do Windows para executar o programa, ela falha no log de eventos.

EventType clr20r3, P1 consolefaxtest.exe, P2 1.0.0.0, 
P3 48bb146b, P4 consolefaxtest, P5 1.0.0.0, P6 48bb146b, 
P7 1, P8 80, P9 system.io.filenotfoundexception, 
P10 NIL.

Escrevi um arquivo em lote para executar o programa de fax e ele falha com esta mensagem.

Unhandled Exception: System.IO.FileNotFoundException: Operation failed.
at FAXCOMEXLib.FaxDocumentClass.ConnectedSubmit(FaxServer pFaxServer)

Alguém pode me explicar esse comportamento?

Foi útil?

Solução

Não sei explicar, mas tenho algumas ideias.

Na maioria das vezes, quando um programa funciona bem ao testá-lo e não ao agendá-lo - a segurança é o caso.No contexto de qual usuário seu programa está agendado?Talvez esse usuário não tenha acesso suficiente.

O recurso que seu programa está tentando acessar uma unidade de rede, que o usuário que executa a tarefa agendada simplesmente não possui?

Outras dicas

Verifique se você definiu o diretório de trabalho correto para sua tarefa

A tarefa agendada está sendo executada no mesmo computador em que você está desenvolvendo ou em um servidor OLP dedicado?É bastante comum que os caminhos mudem quando você muda de ambiente, então o caminho para o documento que você está tentando enviar é o mesmo?

Eu concordo com MartinNH.

Muitos desses problemas se originam do fato de você desenvolver enquanto estiver conectado como administrador no Visual Studio (portanto, o programa tem todas as permissões de execução definidas corretamente), mas você implanta como um usuário com menos privilégios.

Tente aumentar os privilégios do usuário do agendador de tarefas.

Se você estiver executando no Vista, poderá descobrir que a elevação está atrapalhando.Talvez seja necessário garantir que sua tarefa seja executada como um administrador adequado, e não como um usuário restrito.

Ao executar uma tarefa agendada, você pode executá-la sob um usuário.Verifique se o usuário que está executando a tarefa agendada tem os mesmos direitos que você para o recurso de fax.É por isso que você pode executá-lo clicando duas vezes no Windows Explorer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top