1

私は SSIS を初めて使用し、リモート サーバーからのファイルの読み取りに関する問題に直面しています。

  1. プロジェクトレベルで定義されたフラットファイル接続がありConnectionString、変数 say によって定義されています@AbsoluteFilePath

  2. の値は@AbsoluteFilePath実行時に UNC に計算されます。

    \\myserver\myfolder\myfile.txt

  3. パッケージの実行を呼び出す Web アプリケーションがあります。

  4. ログインしたユーザーとしてファイル フォルダーを表示できますが、ファイルの読み取り中にパッケージの実行がエラーで終了します。

    のエラーメッセージで実行が失敗しますreturn code 0XC020200E

  5. SQL 2012 が実行されているマシンにUNC\\myserver\myfolderをマッピングしようとしました。Z:ただし、これでも同じエラーが発生します。

SSIS で UNC を使用することはお勧めできますか? このタスクを行う標準的な方法は何ですか?

以下は、私が達成しようとしている完全なワークフローです。

全体像

ユーザーが Web フロント エンドでファイルを選択します。Web アプリケーションはファイルを共有ドライブに保存し、SSIS パッケージを呼び出して実行します。SSIS パッケージは共有ドライブからファイルを読み取り、必要なアクションを実行します。

更新 : アクセス許可の説明とストアド プロシージャからの SSIS パッケージの実行

  1. Web アプリケーション X はサーバー上で実行されますserver-web
  2. SSIS パッケージ Y はサーバーserver-ssisで実行されます
    1. サーバー上のデータベースにアクセスします
    2. サーバーサーバーファイルシステム上のUNCにアクセスします

パッケージは、ここに記載されているストアド プロシージャを実行することによって実行されていますhttp://msdn.microsoft.com/en-us/library/ff878099.aspx

server-webで使用される接続文字列 は次の形式です

Data Source=server-ssis;Initial Catalog=SSISDB;Integrated Security=SSPI;
4

2 に答える 2

1

これはパーミッションの問題です (0XC020200Eファイルのパーミッションを検索するとヒットするという事実に加えて)。

Web アプリケーションを実行しているアカウントの権限を確認してください。共有へのアクセス許可を付与する必要があります。あなたのアカウントまたはログインしているユーザーで動作しますが、パッケージを実行しているアカウントとはおそらく同じではありません。

于 2013-01-08T22:13:35.547 に答える
0

@ user1826905あなたは正しかった.SQLエージェントジョブを使用してSSISパッケージを呼び出すことは、WebアプリケーションからSSISパッケージを呼び出す最も簡単な方法であることが証明されました.

このリンクhttp://msdn.microsoft.com/en-us/library/ms403355.aspxは、SSIS パッケージを呼び出す 2 つの異なる方法を提供します。

  1. SQL エージェント ジョブの使用
  2. Web サービスを使用する

ストアド プロシージャhttp://msdn.microsoft.com/en-us/library/ff878099.aspxを使用して試していた SSIS を呼び出す 3 番目の方法がありますが、ここで説明されている複数のサーバー ホップ kerberos 委任にまたがって作業するときに問題があります。

ホップ後に匿名ユーザーにアクセスするように変更するため、このアプローチを使用して UNC にアクセスすることにまだ苦労しています。

于 2013-02-08T18:32:32.933 に答える