Debuggen eines Geschäftslogikhandlers (Replikationsprogrammierung)Debug a Business Logic Handler (Replication Programming)

Gilt für: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Verwenden Sie einen Geschäftslogikhandler, um eine benutzerdefinierte Geschäftslogik aufzurufen, wenn ein Mergeabonnement synchronisiert wird.Use a business logic handler to invoke custom business logic when a merge subscription is synchronized. Weitere Informationen finden Sie unter Ausführen von Geschäftslogik während der Mergesynchronisierung.For more information, see Execute Business Logic During Merge Synchronization.

Die Mergereplikationssynchronisierung (replrec.dll) ruft die Assembly mit verwaltetem Code auf, die die Geschäftslogik enthält.The Merge Replication Reconciler (replrec.dll) calls the managed code assembly containing the business logic. 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).In most cases, replrec.dll and the custom business logic is executed on the computer where the Merge Agent runs (at the Subscriber for a pull subscription or at the Distributor for a push subscription). Bei der Websynchronisierung oder bei einem SQL Server CompactSQL Server Compact -Abonnenten werden die Synchronisierung und die benutzerdefinierte Geschäftslogik auf dem Webserver ausgeführt.In the case of Web synchronization, or in the case of a SQL Server CompactSQL Server Compact Subscriber, the reconciler and the custom business logic is executed on the Web server.

So debuggen Sie einen Geschäftslogikhandler auf einem lokalen ComputerTo debug a business logic handler on a local computer

  1. Konfigurieren Sie die Veröffentlichung und Verteilung, erstellen Sie eine Veröffentlichung, und erstellen Sie ein Abonnement für die Veröffentlichung.Configure publishing and distribution, create a publication, and create a subscription to the publication. Weitere Informationen finden Sie unter Konfigurieren der Veröffentlichung und der Verteilung und Create a Publication (Erstellen einer Veröffentlichung).For more information, see Configure Publishing and Distribution and Create a Publication.

  2. Erstellen und registrieren Sie einen Geschäftslogikhandler.Create and register a business logic handler. Weitere Informationen finden Sie unter Implementieren eines Geschäftslogikhandlers für einen Mergeartikel.For more information, see Implement a Business Logic Handler for a Merge Article.

  3. Erstellen Sie ein RMO-Projekt (Replication Management Objects, Replikationsverwaltungsobjekte) in MicrosoftMicrosoft Visual Studio, das den Merge-Agent programmgesteuert synchron startet.Create a Replication Management Objects (RMO) project in MicrosoftMicrosoft Visual Studio that programmatically starts the Merge Agent synchronously. Weitere Informationen finden Sie unter Synchronize a Pull Subscription.For more information, see Synchronize a Pull Subscription.

  4. Legen Sie, entweder in der zu debuggenden Methode oder im Klassenkonstruktor, einen Breakpoint im Code des Geschäftslogikhandlers fest.Set a breakpoint in the business logic handler code, either in the method being debugged or in the class constructor. Weitere Informationen zu den Methoden, die in einem Geschäftslogikhandler implementiert werden können, finden Sie in den Themen zu den BusinessLogicModule -Methoden.For more information about the methods that can be implemented in a business logic handler, see the BusinessLogicModule methods topic.

  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.Build the business logic handler in debug mode and deploy the assembly and debugging symbol file (.pdb) in the location registered in step 1.

    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.To simplify debugging, create a single Visual Studio .NET solution that contains both the business logic handler project and the project that synchronizes the subscription. 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.In this case, set the synchronization project as the startup project, and configure the build environment to deploy the business logic assembly to the location registered in step 1 during debugging.

  6. Führen Sie Einfüge-, Update- oder Löschbefehle an der Abonnement- oder Veröffentlichungsdatenbank aus.Execute insert, update, or delete commands against the subscription or publication database. Der Speicherort für Befehle und Ausführung hängt von der Methode ab, die gedebuggt wird.The command and execution location depends on the method being debugged.

  7. Starten Sie das Projekt aus Schritt 3 im Debugmodus, um das Abonnement zu synchronisieren.Start the project from step 3 in debug mode to synchronize the subscription.

  8. Die Ausführung stoppt, wenn sie den Breakpoint im Geschäftslogikhandler erreicht, falls keine anderen Breakpoints festgelegt und die richtigen Befehle repliziert wurden.Assuming that no other breakpoints are set and the proper commands are replicated, the execution stops when it reaches the breakpoint in the business logic handler.

So debuggen Sie einen Geschäftslogikhandler auf einem Webserver mit der Websynchronisierung oder für einen Abonnenten von SQL Server CompactTo debug a business logic handler on a Web server using Web synchronization, or for a SQL Server Compact Subscriber

  1. Konfigurieren Sie die Veröffentlichung und Verteilung, erstellen Sie eine Veröffentlichung, und erstellen Sie ein Pullabonnement für die Veröffentlichung.Configure publishing and distribution, create a publication, and create a pull subscription to the publication. Die Veröffentlichung muss die Websynchronisierung oder Abonnenten von SQL Server CompactSQL Server Compact unterstützen.The publication must support Web synchronization or SQL Server CompactSQL Server Compact Subscribers.

  2. Erstellen und registrieren Sie einen Geschäftslogikhandler.Create and register a business logic handler. Weitere Informationen finden Sie unter Implementieren eines Geschäftslogikhandlers für einen Mergeartikel.For more information, see Implement a Business Logic Handler for a Merge Article.

  3. Legen Sie, entweder in der zu debuggenden Methode oder im Klassenkonstruktor, einen Breakpoint im Code des Geschäftslogikhandlers fest.Set a breakpoint in the business logic handler code, either in the method being debugged or in the class constructor. Weitere Informationen zu den Methoden, die in einem Geschäftslogikhandler implementiert werden können, finden Sie in den Themen zu den BusinessLogicModule -Methoden.For more information about the methods that can be implemented in a business logic handler, see the BusinessLogicModule methods topic.

  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.Build the business logic handler in debug mode and deploy the assembly and debugging symbol file (.pdb) at the Web server in the location registered in step 1.

    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.If the business logic handler fails to build because the assembly is in use, type the command iisreset on the Web server at the command prompt to reset the Web server.

  5. Synchronisieren Sie das Abonnement mit aktivierter Websynchronisierung.Synchronize the subscription with Web synchronization enabled. Während der Synchronisierung lädt der Webserver die registrierte Assembly.During synchronization, the Web server loads the registered assembly.

  6. Fügen Sie mit dem Debugger von Visual Studio .NET einen der folgenden Prozesse auf dem Webserver an.Using the Visual Studio .NET debugger, attach to the one of the following processes on the Web server:

    • w3wp.exe – Windows Server 2003.w3wp.exe - Windows Server 2003.

    • inetinfo.exe – Windows 2000 und Windows XP.inetinfo.exe - Windows 2000 and Windows XP.

  7. Prüfen Sie im Fenster Ausgabe die Debugausgabe, um festzustellen, ob die Symbole für die registrierte Assembly ordnungsgemäß geladen wurden.In the Output window, check the debug output to verify that the symbols for the registered assembly loaded properly. Wenn die Symbole nicht geladen wurden, stellen Sie sicher, dass die richtige PDB-Datei in Schritt 4 kopiert wurde, und wiederholen Sie Schritt 5.If the symbols were not loaded, ensure that the correct .pdb file was copied in step 4, and repeat step 5.

  8. Führen Sie Einfüge-, Update- oder Löschbefehle an der Abonnement- oder Veröffentlichungsdatenbank aus.Execute insert, update, or delete commands against the subscription or publication database. Der Speicherort für Befehle und Ausführung hängt von der Methode ab, die gedebuggt wird.The command and execution location depends on the method being debugged.

  9. Hängen Sie den w3wp.exe-Prozess mit dem Debugger von Visual Studio an.Using the Visual Studio debugger, attach to the w3wp.exe process.

  10. Synchronisieren Sie das Abonnement erneut mit der Websynchronisierung.Synchronize the subscription again, using Web synchronization.

  11. Die Ausführung stoppt, wenn sie den Breakpoint im Geschäftslogikhandler erreicht, falls keine anderen Breakpoints festgelegt und die richtigen Befehle repliziert wurden.Assuming that no other breakpoints are set and the proper commands are replicated, the execution stops when it reaches the breakpoint in the business logic handler.

Weitere InformationenSee Also

Implementieren eines Geschäftslogikhandlers für einen MergeartikelImplement a Business Logic Handler for a Merge Article