は有効ではありません:SSIS接続エラー - ファイル名は
は は、このサイトや他の人の周りに私の検索が示しThe file name "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\UNC\FOLDERS\filename.xls;Extended Properties="EXCEL 8.0;HDR=YES";" specified in the connection was not valid.
これの最も一般的な原因はパーミッションエラーですが、この実装では任意の数のファイルが正常に処理されているため、この状況ではそうは思われません。 Windowsサービスが拾って日常的に私たちに
ベンダーFTPファイルは、一時ディレクトリにコピーして、それらのファイルにSSISのジョブを呼び出します。
は、ここでセットアップの概要です。各ベンダーには、スナップショットデータフィード用とトランザクション一覧用の2つのSSISジョブがあります。
現在、プロセス全体で50以上の異なるSSISジョブが存在します。それらはすべて、スクリプトタスクステップで上記のエラーで失敗する1つの特定のトランザクションジョブを除いて機能します。少なくとも毎日ユニークなファイル名でファイルが取得されるため、ジョブを取得し、ソースディレクトリに基づいてベンダーを決定し、ファイル名のインジケータに基づいてファイルタイプを決定し、どのSSISジョブを呼び出すかを決定します。ファイル名が毎日変わるので、サービスがSSISジョブを呼び出すときに、ベンダーのファイル名を含む一連のパラメータを渡して、ファイルに正しく接続できるようにします。
各ジョブは、残りのジョブに必要な変数値を設定するスクリプトタスクで始まります。たとえば、実行ごとにベンダーのファイル名が変更されるため、SSIS変数コレクションを使用してベンダーのファイル名を渡し、そのファイル名を文字列のDataSourceとして使用するデータソースの接続文字列を設定します。上記のエラーが発生するのはスクリプトタスクの時点です。ここでエラーが発生したタスクのスクリプトコードがあります:
Dts.Connections("Transactions File").ConnectionString = _
Dts.Variables("ConnectionString").Value.ToString().Replace("##FILE_PATH##", sourceFilePath)
のConnectionString値である:プロバイダ= Microsoft.Jet.OLEDB.4.0;データソース= ## FILE_PATH ##;プロパティ= "EXCEL 8.0拡張; HDR =はい"; sourceFilePathは、私は(処理のために同じ保持ディレクトリを使用して)このプロセスを通過する他のすべてのファイルが作業しているので、それが権限エラーだとは思わない処理ディレクトリ
におけるベンダーファイルへの完全なUNCパスです。それは、他のすべてのファイルと同じプロセスをたどり、適切なディレクトリにファイルが正しく存在することを確認してから、存在しないファイルの問題であってはなりません。私はまた、接続文字列が長すぎるかもしれないと考えていますが、ファイルパスは109文字で終了し、さらに短いパス(< 90)でも同じエラーが発生します。
私に見てもらえると思いますか?助けてくれてありがとう。
あなたは、ConnectionStringプロパティを変更するスクリプトを使用しただけではなく、その上に表現を使用している特別な理由はありますか?私はそれがあなたの問題だとは思わないが、道路の保守に苦労することはありませんか?私は提供された偽のパス\ UNC \ FOLDERSは実際には\\ UNC \ FOLDERSとして表現されていると信じています – billinkc
最初の質問に答えて、SSISをその場で学びました。あなたの2番目の答えには、はい、私はこの投稿を作成していたときにタイプミスでした。ありがとう。 –
私の答えを試してみましたか?それでも問題はありますか? – billinkc