0

我有一个用 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)

谁能向我解释这种行为?

4

6 回答 6

5

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

大多数时候,当一个程序运行良好时测试它,而在调度它时却没有——安全就是这种情况。您的程序是在哪个用户的上下文中安排的?也许该用户没有被授予足够的访问权限。

您的程序试图访问网络驱动器的资源是运行计划任务的用户根本没有的吗?

于 2008-08-31T22:40:42.273 回答
0

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

于 2008-08-31T22:38:19.660 回答
0

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

于 2008-08-31T22:39:49.220 回答
0

我同意 MartinNH 的观点。

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

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

于 2008-08-31T22:49:28.120 回答
0

如果您在 Vista 中运行,您可能会发现海拔正在妨碍您。您可能需要确保您的任务以适当的管理员身份运行,而不是以受限用户身份运行。

于 2008-08-31T23:27:33.003 回答
0

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

于 2008-09-01T11:48:05.563 回答