【问题标题】:SSIS with COM Interop fails when run as a scheduled job作为计划作业运行时,具有 COM 互操作性的 SSIS 失败
【发布时间】:2010-11-11 13:44:14
【问题描述】:

我有一个 SSIS 包,它利用 RightFax 的 COM API (rfcomapi.dll) 周围的 COM 互操作 (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 互操作程序集实例化一个类。

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

【问题讨论】:

  • +1: 只是为了我机器上的工作而叫喊......如果我每次想摆脱它时都能赚到钱......

标签: .net ssis com-interop rightfax


【解决方案1】:

在这篇支持文章中尝试Method 3

更改 SSIS 包 ProtectionLevel 属性 加密敏感密码。这 设置使用密码 加密。然后你可以修改 SQL Server 代理作业步骤命令行 包括这个密码。

【讨论】:

  • 我们的包都使用EncryptAllWithPassword
【解决方案2】:

事实证明,COM 互操作程序集在 64 位(服务器已打开)中运行时出现问题,我们将其切换到 32 位并且运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多