代码之家  ›  专栏  ›  技术社区  ›  Nick Johnson

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

  •  0
  • Nick Johnson  · 技术社区  · 17 年前

    我有一个用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 回复  |  直到 17 年前
        1
  •  5
  •   MartinHN    17 年前

    我不能解释-但我有一些想法。

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

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

        2
  •  0
  •   aku    17 年前

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

        3
  •  0
  •   Glenn Slaven    17 年前

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

        4
  •  0
  •   Jon Limjap    17 年前

    我同意马丁尼的观点。

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

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

        5
  •  0
  •   1800 INFORMATION    17 年前

    如果你在vista上跑步,你可能会发现海拔在阻碍你的前进。您可能需要确保您的任务以适当的管理员身份运行,而不是以受限用户身份运行。

        6
  •  0
  •   David Basarab    17 年前

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