C#控制台程序作为计划任务运行时无法发送传真

时间:2008-08-31 22:28:23

标签: c# console 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.

我写了一个批处理文件来运行传真程序,但是这个消息失败了。

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

有人可以向我解释这种行为吗?

6 个答案:

答案 0 :(得分:5)

我无法解释 - 但我有一些想法。

大多数情况下,当一个程序对它进行精细测试时,并且在安排它时没有 - 安全性就是这种情况。在用户是您的计划安排的上下文中?也许该用户未获得足够的访问权限。

您的程序正在尝试访问网络驱动器的资源,运行计划任务的用户是否还没有?

答案 1 :(得分:0)

检查是否为任务设置了正确的工作目录

答案 2 :(得分:0)

计划任务是在您正在开发的同一台计算机上运行,​​还是在专用的olp服务器上运行?更改环境时路径的变化很常见,您尝试发送的文档的路径也是如此?

答案 3 :(得分:0)

我同意MartinNH。

这些问题中的许多问题源于您在Visual Studio中以管理员身份登录时开发(因此程序具有正确执行权限的所有权限),但您部署为具有较少权限的用户。

尝试将任务调度程序用户的权限设置得更高。

答案 4 :(得分:0)

如果您在Vista中运行,您可能会发现高程正在阻碍。您可能需要确保您的任务作为适当的管理员运行,而不是作为受限用户运行。

答案 5 :(得分:0)

运行计划任务时,可以让它在用户下运行。验证正在运行计划任务的用户是否具有与您相同的传真资源权限。这就是为什么在Windows explore中双击时可以运行它。