我有一个用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)
有人可以向我解释这种行为吗?
答案 0 :(得分:5)
我无法解释 - 但我有一些想法。
大多数情况下,当一个程序对它进行精细测试时,并且在安排它时没有 - 安全性就是这种情况。在用户是您的计划安排的上下文中?也许该用户未获得足够的访问权限。
您的程序正在尝试访问网络驱动器的资源,运行计划任务的用户是否还没有?
答案 1 :(得分:0)
检查是否为任务设置了正确的工作目录
答案 2 :(得分:0)
计划任务是在您正在开发的同一台计算机上运行,还是在专用的olp服务器上运行?更改环境时路径的变化很常见,您尝试发送的文档的路径也是如此?
答案 3 :(得分:0)
我同意MartinNH。
这些问题中的许多问题源于您在Visual Studio中以管理员身份登录时开发(因此程序具有正确执行权限的所有权限),但您部署为具有较少权限的用户。
尝试将任务调度程序用户的权限设置得更高。
答案 4 :(得分:0)
如果您在Vista中运行,您可能会发现高程正在阻碍。您可能需要确保您的任务作为适当的管理员运行,而不是作为受限用户运行。
答案 5 :(得分:0)
运行计划任务时,可以让它在用户下运行。验证正在运行计划任务的用户是否具有与您相同的传真资源权限。这就是为什么在Windows explore中双击时可以运行它。