Ftpサーバーからftpプルファイルを取得してローカルドライブに保存するSSISパッケージを作成しましたが、この問題が発生します。
同じエラーメッセージで警告しか表示されませんでしたが、今日はジョブが失敗します。
メッセージ:
ユーザーとして実行:cam\Package.Runner。 Microsoft(R)SQL Server Execute Package Utilityバージョン10.0.4000.0(64ビット用)Copyright(C)Microsoft Corp1984-2005。全著作権所有。開始:10:00:00 AMエラー:2012-02-15 10:00:00.61コード:0xC0016016ソース:説明:保護されたXMLノード "DTS:Password"の復号化に失敗しました。エラー0x8009000B "キーは指定された状態で使用できません。 。」。この情報へのアクセスが許可されていない可能性があります。このエラーは、暗号化エラーがある場合に発生します。正しいキーが使用可能であることを確認します。終了エラーエラー:2012-02-15 10:00:00.62コード:0xC0016016ソース:説明:保護されたXMLノード「DTS:Property」の復号化に失敗しました。エラー0x8009000B「キーは指定された状態で使用できません。」この情報へのアクセスが許可されていない可能性があります。このエラーは、暗号化エラーがある場合に発生します。正しいキーが使用可能であることを確認します。終了エラーエラー:2012-02-15 10:00:33.53コード:0xC0029183ソース:プリンシパルバランスファイルFTP Get FTPタスクの説明:「/ Concerto/Virtus_Reports/Concertoプリンシパルバランスレポート* .pdf」で表されるファイルが存在しません。終了エラーDTExec:パッケージの実行でDTSER_FAILURE(1)が返されました。開始:10:00:00 AM終了:10:00:33 AM経過:33.088秒。パッケージの実行に失敗しました。ステップは失敗しました。
この問題は、保護レベルプロパティを設定することで修正できます
Protection Level : DontSaveSensitive
このプロパティを使用すると、パッケージはパスワードで保護されず、別のサーバーが他の資格情報を使用して任意のジョブにアクセスして実行できます。
パッケージをSQLServerにインポートするときに、保護レベルを選択します。
1-機密データを保存しないでください。
または
2-アクセス制御はサーバーストレージとロールに依存します。
SSISプロジェクトパッケージのプロパティのスクリーンショット:
オプション「EncryptSensitiveWithPassword」を使用してパッケージを保存してみてください。
ステップ-1:FTP接続マネージャーを右クリックし、そのプロパティ([編集]ボタンではなく一番下)に移動して、パスワードを入力します。
ステップ-2:EncryptSensitiveWithPasswordを使用してパッケージを保存します。
ステップ-3:SQLジョブエージェントで次のようにコマンドリングを編集します/ FILE "C:\ Fullpath of SSIS pkg.dtsx"/DECRYPT password
FTP接続についても同じエラーメッセージが表示されました。これは、作成した資格情報とは異なる資格情報でBIDSを実行しているときにパッケージを開いたことが原因だと思います。
不格好な回避策として、FTP接続を削除して再作成しました。その後はうまくいきました。
パッケージをビルドしてデプロイする前に、ソリューションのプロパティを次のように変更したことを確認してください。
Run64BitRuntime = False
SSISジョブエラーの主な部分は
"0xC0029183ソース:プリンシパルバランスファイルFTP Get FTPタスクの説明:"/Concerto/Virtus_Reports/Concertoプリンシパルバランスレポート* .pdfで表されるファイル "は存在しません。終了エラーDTExec:パッケージの実行でDTSER_FAILUREが返されました(1)開始:10:00:00 AM終了:10:00:33 AM経過:33.088秒。パッケージの実行に失敗しました。」
SSISパッケージで構成したパスにPDFファイルがないようです。インポートするパスとPDFファイルを確認してください。よろしく、ブラニスラフ
これは私のために働いたステップです。
働いた!
FTP接続の場合、FTPタスクの前に1つのスクリプトタスクを作成し、そのためのパスワードを設定するだけです。
ConnectionManager FTPConn;
FTPConn = Dts.Connections ["FTP Connection Manager"];
FTPConn.Properties ["ServerPassword"]。SetValue(FTPConn、Dts.Variables ["FtpPwd"]。value);
OLE DBの場合は、OLEDB接続の接続文字列にパスワードを追加するだけです。