从SSIS包启动VPN?

时间:2014-07-02 10:47:28

标签: windows ssis vpn windows-server-2012 ssis-2012

使用SSIS我需要从网络/域外的服务器检索数据。 我只能通过VPN访问此服务器。 我创建了2个包:

  1. StartVPN - 使用一些VB这个包启动VPN。效果很好。 :)
  2. 导入文件 - 从StartVPN调用此包,并应导入一些数据。
  3. 当我直接使用已经启动的VPN运行包2时,此包运行良好。 当我从包1运行包2而没有启动VPN的任务但手动启动VPN时,这个包运行良好。

    但是,如果我从包1调用此包,它将失败并显示错误: AcquireConnection方法调用连接管理器" MyConnection"失败,错误代码为0xC0202009。 VPN是否已经启动并不重要。

    如何在程序包执行期间只运行VPN来运行程序包2?

1 个答案:

答案 0 :(得分:3)

我解决了! 我需要在package1(启动VPN)和package2(执行导入)之间添加一个等待 设置VPN后,使package1等待5秒后再继续。现在一切都工作了:)

SO:包含VB脚本的包1用于启动(现有)VPN:

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