使用COM Interop的SSIS在作为预定作业运行时失败

问题描述 投票:1回答:2

我有一个SSIS包,它使用了一个围绕RightFax的COM API(rfcomapi.dll)的COM Interop(Interop.RFCOMAPILib.dll)。

Interop程序集已经过GAC,因此我们可以在SSIS包中使用它

该程序包在我的本地计算机上运行正常。但是如果手动启动它也可以在服务器上正常工作(意味着服务器上的所有配置都是正确的)

(来源:codinghorror.com

但是当我们将软件包放在预定的作业上(在我们能够手动运行它的同一台服务器上)并让作业启动软件包时,它会在下一行中失败。

Dim faxServer As New FaxServerClass()

并出现以下错误

Error: 2009-07-16 15:32:01.39
    Code: 0x00000002
    Source: Send PO Notification Faxes and Mark as Processed 
    Description: The script threw an exception: Object reference not set to an instance of an object.
End Error

这一行是整个包中第一次尝试从COM Interop程序集中实例化一个类。

会发生什么事?线程问题还是什么?

.net ssis com-interop rightfax
2个回答
1
投票

事实证明,COM Interop程序集在64位运行时出现了问题(服务器已启动)我们将其切换到32位并运行正常。


0
投票

试试这篇支持文章中的Method 3

将SSIS Package ProtectionLevel属性更改为EncryptSensitiveWithPassword。此设置使用密码进行加密。然后,您可以修改SQL Server代理作业步骤命令行以包含此密码。

© www.soinside.com 2019 - 2024. All rights reserved.