【问题标题】:Start VPN from SSIS package?从 SSIS 包启动 VPN?
【发布时间】:2014-08-23 03:07:47
【问题描述】:

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

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

当我在 VPN 已经启动的情况下直接运行包 2 时,这个包运行良好。 当我从包 1 运行包 2 时,没有启动 VPN 的任务,但手动启动了 VPN,这个包运行良好。

但是,如果我从包 1 中调用此包,则会失败并出现以下错误: 对连接管理器“MyConnection”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。 VPN是否已经启动并不重要。

如何运行包 2,而 VPN 仅在包执行期间运行?

【问题讨论】:

  • 有时实际的错误存在于某个地方,错误消息会引导我们查看其他内容。我们最终在这个过程中浪费了时间,因为错误消息转移了我们 - blogs.msdn.com/b/ramoji/archive/2009/03/10/…
  • 能否在您的问题中添加完整的错误消息。

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


【解决方案1】:

我解决了! 我需要在 package1(启动 VPN)和 package2(进行导入)之间添加等待 设置 VPN 后,package1 需要等待 5 秒才能继续。现在一切正常:)

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

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 调用 package 2 进行实际导入

还有一个用于关闭 VPN 的 VB 脚本任务:

Dim VPNConnectionName As String = "MyConnection"

Shell("RASDIAL " & Chr(34) & VPNConnectionName & Chr(34) & " /DISCONNECT", vbNormalFocus)
            '
Dts.TaskResult = ScriptResults.Success

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    相关资源
    最近更新 更多