直接从.exe执行控制台应用程序与通过任务计划执行控制台应用程序的差异



im 在 Window Server 2008 上工作,在此服务器中,我开发了一个 vb.net 2008 控制台应用程序,该应用程序打开 Excel 2003 文件并使用其内容创建 XML 文件,因此我有两种情况:
1.程序执行的差异:如果我从Visual Studio或直接从可执行文件运行应用程序,它会毫无问题地打开并处理excel,但是如果我在Windows任务计划程序或执行该程序的adtempus中配置了任务,则失败并引发此异常:

来自 HRESULT 的异常:0x800A03EC- at Microsoft.Office.Interop.Excel.Workbooks.Open(字符串文件名、对象更新链接、对象只读、对象格式、对象密码、对象写入重新定义、对象忽略只读推荐、对象原点、对象分隔符、对象可编辑、对象通知、对象转换器、对象添加到Mru、对象本地、对象损坏加载) 在。模块1.转换Excel到Xml文件(字符串Excel文件)

我已经阅读了很多关于此异常的信息,但目前我无法解决,所以我想知道该程序如何从 Visual Studio 或直接从执行中正确执行,但如果两种情况在同一台服务器中,则在任务上执行时失败?有没有办法解决这种行为?


2.在控制台应用程序中,当我使用打开方法打开excel文件时,excel中的文件出现几秒钟然后关闭,有没有办法访问excel文件内容,但文件没有显示在Excel女士中?

谢谢。

不应在无人参与进程中使用 Office 互操作。

Microsoft 目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)自动化Microsoft Office 应用程序,因为在此环境中运行 Office 时 Office 可能会表现出不稳定的行为和/或死锁。

如果要生成在服务器端上下文中运行的解决方案,则应尝试使用已安全执行无人参与的组件。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方法。如果使用服务器端解决方案中的 Office 应用程序,则该应用程序将缺少成功运行所需的许多功能。此外,您将承担整体解决方案稳定性的风险。

http://support.microsoft.com/?id=257757

有许多产品可以操作 Excel 文档并在无人值守的情况下正确运行。

您尝试在网络上打开的 Excel 文件吗?

如果是这样,则问题很可能是因为您的任务计划程序服务及其运行的任何作业(默认情况下)在本地 SYSTEM 帐户下运行,该帐户禁止网络访问。

如果将任务更改为在其他帐户(例如,已授予远程文件共享权限的域帐户)下运行。(请注意,此更改可能会影响其他计划任务的运行方式,因此您需要非常确定所需的权限。

以防万一您还没有弄清楚,最有可能对我有用的解决方案可以在此 URL 中找到:

https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?forum=innovateonoffice

如果您的服务器是 64 位服务器,请在下面提到的路径中创建一个名为"桌面"的文件夹,即 C:\Windows\SysWOW64\config\systemprofile\Desktop

如果您的服务器是 32 位服务器,请将此文件夹设为 C:\Windows\System32\config\systemprofile\Desktop

最新更新