2

SSIS を使用して、ネットワーク/ドメイン外のサーバーからデータを取得する必要があります。このサーバーには VPN 経由でしかアクセスできません。2 つのパッケージを作成しました。

  1. StartVPN - いくつかの VB を使用して、このパッケージは VPN を開始します。よく働く。:)
  2. ファイルのインポート - このパッケージは StartVPN から呼び出され、一部のデータをインポートする必要があります。

VPN が既に開始されている状態でパッケージ 2 を直接実行すると、このパッケージはうまく動作します。VPN を開始するタスクを使用せずにパッケージ 1 からパッケージ 2 を実行すると、VPN を手動で開始すると、このパッケージはうまく動作します。

ただし、パッケージ 1 からこのパッケージを呼び出すと、次のエラーで失敗します: 接続マネージャー "MyConnection" への AcquireConnection メソッドの呼び出しがエラー コード 0xC0202009 で失敗しました。VPN がすでに開始されているかどうかは関係ありません。

パッケージの実行中に VPN のみを実行してパッケージ 2 を実行するにはどうすればよいですか?

4

1 に答える 1

3

解決しました!package1 (VPN の開始) と package2 (インポートの実行) の間に待機を追加する必要がありました。VPN のセットアップ後、package1 は続行する前に 5 秒間待機するようになりました。今、すべてがうまくいきます:)

SO: (既存の) VPN を起動するための VB scriptask を含むパッケージ 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 から package 2 を呼び出します

そして、VPN を閉じるための VB スクリプトタスク:

Dim VPNConnectionName As String = "MyConnection"

Shell("RASDIAL " & Chr(34) & VPNConnectionName & Chr(34) & " /DISCONNECT", vbNormalFocus)
            '
Dts.TaskResult = ScriptResults.Success
于 2014-07-02T11:14:02.420 に答える