ExcelファイルをSQL ServerテーブルにインポートするSSISパッケージを作成しました。
SSISパッケージを自分のマシンでローカルに実行すると問題なく実行されますが、パッケージがスケジュールされるサーバーで実行すると、次のエラーが発生します(テキストファイルから、SSISログを使用してエラーを出力しています)。
調査した後、私が見つけた唯一の推奨事項は、Run64BitRuntimeプロパティをfalseに設定することでしたが、それでもうまくいきませんでした。私が見つけた記事のように、エラーが64ビットに関して何も指定していないため、これが私のエラーの原因であるとは思いません。
また、サーバーに適切なExcelドライバーがないことも考えられますが、通常はエラーメッセージにドライバーが登録されていないというメッセージが表示されるため、そうではありません。
現在、サーバーへのリモートアクセスがありません。パッケージをフォルダーにアップロードするだけで、アプリケーションによって実行されるため、表示されるエラーメッセージは、作成したテキストエラーログの内容だけです。
エラーコードDTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。接続マネージャ "Envision"へのAcquireConnectionメソッドの呼び出しは、エラーコード0xC0209303で失敗しました。この前に、AcquireConnectionメソッドの呼び出しが失敗した理由の詳細を含むエラーメッセージが表示される場合があります。
"Envision"は、私のExcel接続マネージャーの名前です。
式を使用してExcelファイルパスと接続文字列を入力します。
接続文字列式は次のようになります。
"Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + @ [User :: SourceFilePath] + "; Extended Properties = \" EXCEL 12.0 XML; HDR = YES \ ";"
SSIS Pacakgeは、Windowsのユーザー名/アカウントによって実行されます。Webサービスアカウントの可能性があります。(BDS_sprtIIS)
ローカルマシンでのみ機能するパッケージのこの問題を解決する方法に関する解決策や提案はありますか?パッケージが展開される実際のサーバーでは機能しませんか?
私は別のフォーラムで以下の回答を見つけました、それが私の問題の原因である可能性がありますか?彼らは基本的に、Excel接続マネージャーが何らかの理由でユーザーの一時フォルダーにアクセスしようとし、そのフォルダーへのアクセス権がない場合は失敗することを言っています。
Microsoft.JET.OLEDB.4.0ドライバーが、ログインしているユーザーのプロファイルの下にある一時ディレクトリを読み取ろうとすることにも気付きました。
。
...下位レベルのドメインアカウントを使用してSQLエージェントを実行し、プロキシアカウントを使用してSSISパッケージを実行します。プロクモンも私のためにそれを確認したので、あなたは正しいです。プロキシアカウントにプロファイルの一時ディレクトリ(C:\ Documents and Settings \ SQLAgentDomainAccount \ Local Settings \ Temp)へのアクセス権を与えたところ、機能しました!
SQL Serverジョブまたはプロキシアカウントを使用していません。パッケージは、コマンドラインスクリプトを介して、Windowsアカウントによって実行される可能性が高いです。
Windowsアカウントはファイルにアクセスできますが、「TEMP」フォルダーにアクセスできるかどうかはわかりません(パッケージでこれを参照していないため、そのフォルダーにアクセスする必要がある理由がわかりません)。 ...