【问题标题】:Application can save files when run manually but not when run by Task Scheduler应用程序可以在手动运行时保存文件,但不能在任务计划程序运行时保存文件
【发布时间】:2014-12-04 09:12:00
【问题描述】:

我有一个简单的命令行应用程序,它每晚创建数据库的 CSV 转储并发送电子邮件。它创建的文件保存在我在app.config 中引用的映射网络驱动器上,如下所示:

<add key="Path" value="X:\Path\To\Folder" />

如果我从命令行运行它一切正常,但是当它由任务计划程序运行时,它会引发以下异常:

System.IO.DirectoryNotFoundException:找不到路径“X:\Path\To\Folder\File.csv”的一部分。

任务运行的帐户具有管理员权限,我还尝试以域管理员身份运行它,但无济于事。

系统在 Windows Server 2008 R2 上运行,但我不确定这是否会有所不同。

【问题讨论】:

    标签: c# windows windows-server-2008 scheduler


    【解决方案1】:

    根据this MSDN forum post

    ...当没有人登录时,映射驱动器将不存在,因此最好始终使用 UNC 路径;

    \\服务器名\共享名

    因此将路径字符串更改为:

    <add key="Path" value="\\Server\Share\Path\To\Folder" />
    

    将确保即使地图无法访问该驱动器。

    【讨论】:

    • 我在 Azure 中托管的 Windows Server 2003 VM 上的本地驱动器上遇到了同样的问题。我不得不将 D:\path 替换为 \\192.168.0.4\d$\path。然后它起作用了。
    猜你喜欢
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2013-08-31
    • 1970-01-01
    相关资源
    最近更新 更多