次の方法で共有


ビジネス ロジック ハンドラーのデバッグ (レプリケーション プログラミング)

マージ サブスクリプションが同期されたときにカスタム ビジネス ロジックを呼び出すには、ビジネス ロジック ハンドラーを使用します。 詳細については、「 マージ同期中のビジネス ロジックの実行」を参照してください。

マージ レプリケーション リコンサイルナー (replrec.dll) は、ビジネス ロジックを含むマネージド コード アセンブリを呼び出します。 ほとんどの場合、マージ エージェントが実行されているコンピューター (プル サブスクリプションの場合はサブスクライバー、プッシュ サブスクリプションの場合はディストリビューター) で、replrec.dll とカスタム ビジネス ロジックが実行されます。 Web 同期の場合、または SQL Server Compact サブスクライバーの場合は、リコンサイルとカスタム ビジネス ロジックが Web サーバー上で実行されます。

ローカル コンピューターでビジネス ロジック ハンドラーをデバッグするには

  1. 発行と配布を構成し、パブリケーションを作成し、パブリケーションのサブスクリプションを作成します。 詳細については、「 発行と配布の構成」およびパブリケーションの作成」を参照してください

  2. ビジネス ロジック ハンドラーを作成して登録します。 詳細については、「 マージ アーティクルのビジネス ロジック ハンドラーを実装する」を参照してください。

  3. プログラムによってマージ エージェントを同期的に開始するレプリケーション管理オブジェクト (RMO) プロジェクトを Microsoft Visual Studio で作成します。 詳細については、「 プル サブスクリプションの同期」を参照してください

  4. デバッグ中のメソッドまたはクラス コンストラクターで、ビジネス ロジック ハンドラー コードにブレークポイントを設定します。 ビジネス ロジック ハンドラーに実装できるメソッドの詳細については、「 BusinessLogicModule メソッド」トピックを参照してください。

  5. デバッグ モードでビジネス ロジック ハンドラーをビルドし、手順 1 で登録した場所にアセンブリとデバッグ シンボル ファイル (.pdb) をデプロイします。

    デバッグを簡略化するには、ビジネス ロジック ハンドラー プロジェクトとサブスクリプションを同期するプロジェクトの両方を含む単一の Visual Studio .NET ソリューションを作成します。 この場合は、同期プロジェクトをスタートアップ プロジェクトとして設定し、デバッグ中に手順 1 で登録した場所にビジネス ロジック アセンブリを配置するようにビルド環境を構成します。

  6. サブスクリプションまたはパブリケーション データベースに対して挿入、更新、または削除コマンドを実行します。 コマンドと実行の場所は、デバッグするメソッドによって異なります。

  7. デバッグ モードで手順 3. からプロジェクトを開始し、サブスクリプションを同期します。

  8. 他のブレークポイントが設定されておらず、適切なコマンドがレプリケートされると、ビジネス ロジック ハンドラーのブレークポイントに達すると実行が停止します。

Web 同期を使用して Web サーバーまたは SQL Server Compact サブスクライバーのビジネス ロジック ハンドラーをデバッグするには

  1. 発行と配布を構成し、パブリケーションを作成し、パブリケーションへのプル サブスクリプションを作成します。 パブリケーションは、Web 同期または SQL Server Compact サブスクライバーをサポートする必要があります。

  2. ビジネス ロジック ハンドラーを作成して登録します。 詳細については、「 マージ アーティクルのビジネス ロジック ハンドラーを実装する」を参照してください。

  3. デバッグ中のメソッドまたはクラス コンストラクターで、ビジネス ロジック ハンドラー コードにブレークポイントを設定します。 ビジネス ロジック ハンドラーに実装できるメソッドの詳細については、「 BusinessLogicModule メソッド」トピックを参照してください。

  4. デバッグ モードでビジネス ロジック ハンドラーをビルドし、手順 1 で登録した場所にある Web サーバーにアセンブリとデバッグ シンボル ファイル (.pdb) をデプロイします。

    アセンブリが使用中であるためにビジネス ロジック ハンドラーのビルドに失敗した場合は、コマンド プロンプトで Web サーバーに iisreset コマンドを入力して、Web サーバーをリセットします。

  5. Web 同期を有効にしてサブスクリプションを同期します。 同期中に、Web サーバーは登録済みのアセンブリを読み込みます。

  6. Visual Studio .NET デバッガーを使用して、Web サーバー上の次のいずれかのプロセスにアタッチします。

    • w3wp.exe - Windows Server 2003。

    • inetinfo.exe - Windows 2000 および Windows XP。

  7. [出力] ウィンドウで、デバッグ出力を調べて、登録済みアセンブリのシンボルが正しく読み込まれたことを確認します。 シンボルが読み込まれていない場合は、手順 4 で正しい .pdb ファイルがコピーされていることを確認し、手順 5 を繰り返します。

  8. サブスクリプションまたはパブリケーション データベースに対して挿入、更新、または削除コマンドを実行します。 コマンドと実行の場所は、デバッグするメソッドによって異なります。

  9. Visual Studio デバッガーを使用して、w3wp.exe プロセスにアタッチします。

  10. Web 同期を使用して、サブスクリプションをもう一度同期します。

  11. 他のブレークポイントが設定されておらず、適切なコマンドがレプリケートされると、ビジネス ロジック ハンドラーのブレークポイントに達すると実行が停止します。

こちらもご覧ください

マージ アーティクルのビジネス ロジック ハンドラーを実装する