从SSIS包启动VPN?

使用SSIS我需要从我的networking/域以外的服务器检索数据。 我只能通过VPN到达这台服务器。 我创build了2个包:

  1. StartVPN – 使用一些VB这个包启动VPN。 很好用。 🙂
  2. 导入文件 – 这个包是从StartVPN调用的,应该导入一些数据。

当我使用已经启动的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