Debuggen eines Geschäftslogikhandlers (Replikationsprogrammierung)

Gilt für:SQL Server

Verwenden Sie einen Geschäftslogikhandler, um eine benutzerdefinierte Geschäftslogik aufzurufen, wenn ein Mergeabonnement synchronisiert wird. Weitere Informationen finden Sie unter Ausführen von Geschäftslogik während der Mergesynchronisierung.

Die Mergereplikationssynchronisierung (replrec.dll) ruft die Assembly mit verwaltetem Code auf, die die Geschäftslogik enthält. In den meisten Fällen werden die Datei replrec.dll und die benutzerdefinierte Geschäftslogik auf dem Computer ausgeführt, auf dem der Merge-Agent ausgeführt wird (bei einem Pullabonnement auf dem Abonnenten und bei einem Pushabonnement auf dem Verteiler). Bei der Websynchronisierung oder bei einem SQL Server Compact Subscriber wird der Abgleich und die benutzerdefinierte Geschäftslogik auf dem Webserver ausgeführt.

So debuggen Sie einen Geschäftslogikhandler auf einem lokalen Computer

  1. Konfigurieren Sie die Veröffentlichung und Verteilung, erstellen Sie eine Veröffentlichung, und erstellen Sie ein Abonnement für die Veröffentlichung. Weitere Informationen finden Sie unter Konfigurieren der Veröffentlichung und der Verteilung und Create a Publication (Erstellen einer Veröffentlichung).

  2. Erstellen und registrieren Sie einen Geschäftslogikhandler. Weitere Informationen finden Sie unter Implementieren eines Geschäftslogikhandlers für einen Mergeartikel.

  3. Erstellen Sie ein RMO-Projekt (Replication Management Objects) in Microsoft Visual Studio, das die Merge-Agent programmgesteuert startet. Weitere Informationen finden Sie unter Synchronize a Pull Subscription.

  4. Legen Sie, entweder in der zu debuggenden Methode oder im Klassenkonstruktor, einen Breakpoint im Code des Geschäftslogikhandlers fest. Weitere Informationen zu den Methoden, die in einem Geschäftslogikhandler implementiert werden können, finden Sie in den Themen zu den BusinessLogicModule -Methoden.

  5. Erstellen Sie den Geschäftslogikhandler im Debugmodus, und stellen Sie die Assembly und die Debugsymboldatei (PDB-Datei) an dem Speicherort bereit, der in Schritt 1 registriert wurde.

    Hinweis

    Um den Debugvorgang zu vereinfachen, erstellen Sie eine einzelne Visual Studio .NET-Lösung, die sowohl das Projekt für den Geschäftslogikhandler als auch das Projekt enthält, das das Abonnement synchronisiert. Legen Sie das Synchronisierungsprojekt in diesem Fall als Startprojekt fest, und konfigurieren Sie die Buildumgebung so, dass die Geschäftslogikassembly an dem Speicherort bereitgestellt wird, der in Schritt 1 beim Debuggen registriert wurde.

  6. Führen Sie Einfüge-, Update- oder Löschbefehle an der Abonnement- oder Veröffentlichungsdatenbank aus. Der Speicherort für Befehle und Ausführung hängt von der Methode ab, die gedebuggt wird.

  7. Starten Sie das Projekt aus Schritt 3 im Debugmodus, um das Abonnement zu synchronisieren.

  8. Die Ausführung stoppt, wenn sie den Breakpoint im Geschäftslogikhandler erreicht, falls keine anderen Breakpoints festgelegt und die richtigen Befehle repliziert wurden.

So debuggen Sie einen Geschäftslogikhandler auf einem Webserver mit der Websynchronisierung oder für einen Abonnenten von SQL Server Compact

  1. Konfigurieren Sie die Veröffentlichung und Verteilung, erstellen Sie eine Veröffentlichung, und erstellen Sie ein Pullabonnement für die Veröffentlichung. Die Publikation muss die Websynchronisierung oder SQL Server Compact-Abonnenten unterstützen.

  2. Erstellen und registrieren Sie einen Geschäftslogikhandler. Weitere Informationen finden Sie unter Implementieren eines Geschäftslogikhandlers für einen Mergeartikel.

  3. Legen Sie, entweder in der zu debuggenden Methode oder im Klassenkonstruktor, einen Breakpoint im Code des Geschäftslogikhandlers fest. Weitere Informationen zu den Methoden, die in einem Geschäftslogikhandler implementiert werden können, finden Sie in den Themen zu den BusinessLogicModule -Methoden.

  4. Erstellen Sie den Geschäftslogikhandler im Debugmodus, und stellen Sie die Assembly und die Debugsymboldatei (PDB-Datei) auf dem Webserver an dem Speicherort bereit, der in Schritt 1 registriert wurde.

    Hinweis

    Falls der Geschäftslogikhandler nicht erstellt werden kann, weil die Assembly verwendet wird, geben Sie den Befehl iisreset an der Eingabeaufforderung auf dem Webserver ein, um den Webserver zurückzusetzen.

  5. Synchronisieren Sie das Abonnement mit aktivierter Websynchronisierung. Während der Synchronisierung lädt der Webserver die registrierte Assembly.

  6. Fügen Sie mit dem Debugger von Visual Studio .NET einen der folgenden Prozesse auf dem Webserver an.

    • w3wp.exe – Windows Server 2003.

    • inetinfo.exe – Windows 2000 und Windows XP.

  7. Prüfen Sie im Fenster Ausgabe die Debugausgabe, um festzustellen, ob die Symbole für die registrierte Assembly ordnungsgemäß geladen wurden. Wenn die Symbole nicht geladen wurden, stellen Sie sicher, dass die richtige PDB-Datei in Schritt 4 kopiert wurde, und wiederholen Sie Schritt 5.

  8. Führen Sie Einfüge-, Update- oder Löschbefehle an der Abonnement- oder Veröffentlichungsdatenbank aus. Der Speicherort für Befehle und Ausführung hängt von der Methode ab, die gedebuggt wird.

  9. Hängen Sie den w3wp.exe-Prozess mit dem Debugger von Visual Studio an.

  10. Synchronisieren Sie das Abonnement erneut mit der Websynchronisierung.

  11. Die Ausführung stoppt, wenn sie den Breakpoint im Geschäftslogikhandler erreicht, falls keine anderen Breakpoints festgelegt und die richtigen Befehle repliziert wurden.

Weitere Informationen

Implementieren eines Geschäftslogikhandlers für einen Mergeartikel