使用SSIS我需要从我的networking/域以外的服务器检索数据。 我只能通过VPN到达这台服务器。 我创build了2个包:
当我使用已经启动的VPN直接运行软件包2时,这个软件包运行良好。 当我从包1运行包2没有启动VPN的任务,但手动启动VPN,这个包运行良好。
但是,如果从包1调用此包,则会失败,并显示以下错误:对连接pipe理器“MyConnection”的AcquireConnection方法调用失败,错误代码为0xC0202009。 VPN是否已经启动并不重要。
我怎样才能运行软件包2只有在执行包期间运行的VPN?
我解决了它! 我需要在package1(启动VPN)和package2(执行导入)之间添加一个等待设置VPN之后,package1等待5秒,然后继续。 现在一切工作膨胀:)
SO:包含一个用于启动(现有)VPN的VB脚本的包1:
Dim VPNConnectionName As String = "MyVPN" Dim VPNlogin As String = "MyUser" Dim VPNPassword As String = "MyPass" Shell("RASDIAL " & Chr(34) & VPNConnectionName & Chr(34) & " " & VPNlogin & " " & VPNPassword, vbNormalFocus) ' System.Threading.Thread.Sleep(5000) Dts.TaskResult = ScriptResults.Success
然后从package1调用包2进行实际导入
而关闭VPN的VB脚本任务:
Dim VPNConnectionName As String = "MyConnection" Shell("RASDIAL " & Chr(34) & VPNConnectionName & Chr(34) & " /DISCONNECT", vbNormalFocus) ' Dts.TaskResult = ScriptResults.Success