我有一个连接数据库的自定义连接管理器,和一个使用该CM实际完成工作的自定义Task。
这在许多系统上都可以正常工作,但是今天我遇到一个问题,即在设计时-例如,配置Task中的设置后,它可以找到连接管理器-并使用它,但只要进入运行时阶段,连接管理器就不会出现在Connections
方法的Execute
参数中:
DTSExecResult Execute(Connections connections, VariableDispenser variableDispenser, IDTSComponentEvents componentEvents, IDTSLogging log, object transaction)
因此,它不会运行。
现在-获取CM并执行的UI是,它使用的是另一种技术-(IServiceProvider.GetService(typeof(IDtsConnectionService))
),我认为这是原因之一-但它设法获得了连接经理。
但是我不知道为什么会这样-在我的机器上一切正常-在另一个机器上却不工作-就我所知-它们在版本方面几乎相同。至少对于重要的事情。
是否需要检查才能使Connections
工作?
如果我还添加了一个SQL CM,则“任务”将看到它,但仍看不到自定义的CM。
编辑/更新
我现在已经建立了-Connections
集合从不包含CM,但是可以通过上面的其他方式(例如IServiceProvider
)进行访问。尽管Task
不能使用这些符号。