【问题标题】:Application throws an error when launched from task scheduler应用程序从任务调度程序启动时抛出错误
【发布时间】:2014-06-11 00:20:19
【问题描述】:

我有一个自定义应用程序,它使用 Microsoft.Office.Interop.Excel.Application 打开和保存 Excel 文件。我有一批使用所有必需参数触发应用程序。该批处理在手动运行时成功完成了任务,但是当我尝试在任务调度程序中安排相同的任务时,我从 ma 应用程序中记录了以下错误消息:

Microsoft Office Excel 无法访问该文件 'E:\tasks\extractSPdocs\downloads\Last_Minute_IT_DATA_DUMP_201404250000.xls'。 有几个可能的原因:

文件名或路径不存在。该文件正在被 另一个程序。您尝试保存的工作簿具有相同的 命名为当前打开的工作簿。

我知道错误是从以下代码部分引发的:

 try
                        {
                            excelfile = new Microsoft.Office.Interop.Excel.Application();
                            excelfile.DisplayAlerts = false;
                            var wb = excelfile.Workbooks.Open(dirpath + "\\" + csvname);
                            wb.SaveAs(dirpath + "\\" + csvname.Substring(0, csvname.LastIndexOf('.')), Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook);
                            csvname = csvname.Substring(0, csvname.LastIndexOf('.')) + ".xlsx";
                            csvext = ".xlsx";
                        }

任务是使用我使用的相同帐户(本地管理员)创建的。 它设置为以最高权限运行并在批处理文件目录中启动。 操作系统是 Windows Server 2008。

我不知道为什么会失败,但我怀疑这与调度程序启动我的应用程序然后启动 Excel 的上下文有关。有人可以提出解决方案吗?

【问题讨论】:

  • E: 是映射驱动器吗?
  • 不,afaik 这是 SAN,但作为本地驱动器连接...即“net use”不显示任何映射的驱动器。

标签: excel batch-file windows-server-2008 scheduled-tasks


【解决方案1】:

我在这里找到了解决方案http://justgeeks.blogspot.co.uk/2012/10/troubleshooting-microsoft-excel-cannot.html

诀窍是你必须创建这个文件夹:

C:\Windows\SysWOW64\config\systemprofile\Desktop

我必须承认我不太明白为什么当任务计划程序启动时,excel 需要这个文件夹才能打开文件,但它可以工作。

【讨论】:

  • 这表明您实际上并没有使用您认为正在使用的用户帐户。此文件夹仅供系统帐户使用。你需要解决这个问题。
【解决方案2】:

实际上我还没有尝试过@Maju 的答案,但this Superuser question 有一个对我有用的解决方案:你必须配置 DCOM。我将运行 Excel 的身份设置为我在任务计划程序中使用的身份。

https://superuser.com/questions/579900/why-cant-excel-open-a-file-when-run-from-task-scheduler

【讨论】:

    【解决方案3】:

    我添加了以下目录c:\windows\syswow64\config\systemprofile\desktop

    【讨论】:

    • 那个链接已经死了,或者死了。您应该将解释中的相关详细信息放在答案正文中。
    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多