SSIS项目作为SQL Server代理作业运行时失败

rn0zuynd  于 2023-01-01  发布在  SQL Server
关注(0)|答案(2)|浏览(254)

我设计了一个SSIS项目,并将其部署到SQL Server,还创建了每天运行的作业,但在将其作为作业执行时,它给了我这个错误(在VS中没有给予任何错误):

此错误消息中有此CLSid,但在--〉组件服务-〉计算机-〉我的电脑-〉DCOM配置中没有与之关联的应用程序
但此CLSid在注册表编辑器中注册

关于发生此错误的特定任务:这是一个脚本任务,用于修改和删除Excel文件中不需要的行,我正尝试在该文件中写入SQL表数据。
脚本任务代码如下所示:

我已经工作了几个小时,现在试图解决这个问题,但没有成功。请指导我如何才能解决这个问题。如果任何其他信息是需要有关这个项目,请让我知道...

s71maibg

s71maibg1#

TL;医生;

您需要在服务器上安装Office(Excel),并确保以反映SQL代理预期位数的方式安装它。代理的默认值将为64位,Office的默认值仍为32位:(

错误猜测

您有一个脚本任务,该任务使用Office互操作库从电子表格中删除一些行(2到11?)。
您的计算机上安装了Office,因此您安装了库。Excel中仍然有基于COM的“东西”,因此interop和错误会在CLSid、注册表等方面尖叫,但这可能只是次要错误,因为没有基本的“未安装应用程序”异常会被抛出。
如果已安装Office,请确保代理执行模型与Office版本匹配。如果已安装32位Excel,请不要卸载并重新安装为64位,以免破坏其他人的工作,只需获得SQL代理作业步骤的高级部分并选中32位复选框即可。
一旦所有这些都完成了,那么如果你仍然得到错误,但新的,那么现有的评论提到权限可能会发挥作用-这取决于Excel文档实际存在的地方(在计算机上,SQL代理可以访问与计算机上,它不能与网络驱动器)
祝你好运,不要在制裁名单上找到人。

vvppvyoh

vvppvyoh2#

在SQL Server代理作业中执行Excel自动化是 * 完全不受支持的 *,可能不会起作用。
要想让它工作起来,你需要在服务器上运行一个真实的的桌面会话,并在其中自动化Excel。Excel希望一个真正的用户使用完整的配置文件登录。Excel在失败的情况下会显示一个弹出窗口,你需要能够通过远程桌面访问这个窗口。
使用OpenXML SDK可以读写服务器上的Excel文件,而不必实际运行Excel。还有一个名为ClosedXML的 Package 器库,您可能会发现它比直接使用OpenXML更容易使用。

相关问题