C# コンソール プログラムがスケジュールされたタスクとして実行されている場合に FAX を送信できない

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

  •  09-06-2019
  •  | 
  •  

質問

FAX の送信に使用している C# で書かれたコンソール プログラムがあります。Visual Studio でプログラムをステップ実行すると、正常に動作します。Windows エクスプローラーでプログラムをダブルクリックすると、正常に動作します。Windows のスケジュールされたタスクをセットアップしてプログラムを実行すると、イベント ログに次のメッセージが記録されて失敗します。

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.

FAX プログラムを実行するバッチ ファイルを作成しましたが、このメッセージが表示されて失敗します。

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

誰かこの行動を説明してもらえますか?

役に立ちましたか?

解決

説明することはできませんが、いくつかアイデアがあります。

ほとんどの場合、プログラムがテスト時には正常に動作しても、スケジュール時には正常に動作しないのは、セキュリティの問題です。どのユーザーのコンテキストでプログラムがスケジュールされていますか?おそらくそのユーザーには十分なアクセス権が付与されていない可能性があります。

プログラムがネットワーク ドライブにアクセスしようとしているリソースは、スケジュールされたタスクを実行しているユーザーが単に取得していないものですか?

他のヒント

タスクに正しい作業ディレクトリが設定されていることを確認してください

スケジュールされたタスクは、開発しているのと同じコンピュータ上で実行されていますか? それとも専用の OLP サーバー上で実行されていますか?環境が変わるとパスが変わるのはよくあることですが、送信しようとしているドキュメントへのパスは同じですか?

MartinNHさんの意見に同意します。

これらの問題の多くは、Visual Studio に管理者としてログインして開発を行っている (つまり、プログラムには実行のためのすべてのアクセス許可が適切に設定されている) のに、より低い権限を持つユーザーとして展開しているという事実に起因しています。

タスクスケジューラユーザーの権限を高く設定してみてください。

Vista で実行している場合、標高が邪魔になることがあります。タスクが制限付きユーザーとしてではなく、適切な管理者として実行されていることを確認する必要がある場合があります。

スケジュール タスクを実行するときは、ユーザーの下でタスクを実行できます。スケジュール タスクを実行しているユーザーが FAX リソースに対して自分と同じ権限を持っていることを確認してください。Windows エクスプローラーでダブルクリックすると実行できるのはこのためです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top