Debug di un gestore della logica di business (programmazione della replica)Debug a Business Logic Handler (Replication Programming)

Utilizzare un gestore della logica di business per richiamare logica di business personalizzata quando viene sincronizzata una sottoscrizione di tipo merge.Use a business logic handler to invoke custom business logic when a merge subscription is synchronized. Per altre informazioni, vedere Eseguire logiche di business durante la sincronizzazione di tipo merge.For more information, see Execute Business Logic During Merge Synchronization.

Il Riconciliatore replica di tipo merge (replrec.dll) chiama l'assembly del codice gestito contenente la logica di business.The Merge Replication Reconciler (replrec.dll) calls the managed code assembly containing the business logic. Nella maggior parte dei casi, replrec.dll e la logica di business personalizzata vengono eseguiti nello stesso computer dell'agente di merge, ovvero nel Sottoscrittore per una sottoscrizione pull o nel server di distribuzione per una sottoscrizione push.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). Nel caso della sincronizzazione tramite il Web o nel caso di un Sottoscrittore SQL Server CompactSQL Server Compact , il riconciliatore e la logica di business personalizzata vengono eseguiti nel server Web.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.

Per eseguire il debug di un gestore della logica di business in un computer localeTo debug a business logic handler on a local computer

  1. Configurare la pubblicazione e la distribuzione, creare una pubblicazione, quindi creare una sottoscrizione della pubblicazione.Configure publishing and distribution, create a publication, and create a subscription to the publication. Per altre informazioni, vedere Configurare la pubblicazione e la distribuzione e Creare, modificare ed eliminare pubblicazioni e articoli (replica).For more information, see Configure Publishing and Distribution and Create, Modify, and Delete Publications and Articles (Replication).

  2. Creare e registrare un gestore della logica di business.Create and register a business logic handler. Per altre informazioni, vedere Implement a Business Logic Handler for a Merge Article.For more information, see Implement a Business Logic Handler for a Merge Article.

  3. Creare un progetto RMO (Replication Management Objects) in MicrosoftMicrosoft Visual Studio che avvia a livello di programmazione l'agente di merge in modo sincrono.Create a Replication Management Objects (RMO) project in MicrosoftMicrosoft Visual Studio that programmatically starts the Merge Agent synchronously. Per altre informazioni, vedere Synchronize a Pull Subscription.For more information, see Synchronize a Pull Subscription.

  4. Impostare un punto di interruzione nel codice del gestore della logica di business, in particolare nel metodo sottoposto a debug o nel costruttore della classe.Set a breakpoint in the business logic handler code, either in the method being debugged or in the class constructor. Per altre informazioni sui metodi che è possibile implementare in un gestore della logica di business, vedere gli argomenti relativi ai metodi degli oggetti BusinessLogicModule.For more information about the methods that can be implemented in a business logic handler, see the BusinessLogicModule methods topic.

  5. Compilare il gestore della logica di business in modalità debug e distribuire il file di simboli (pdb) del debug e dell'assembly nel percorso registrato nel passaggio 1.Build the business logic handler in debug mode and deploy the assembly and debugging symbol file (.pdb) in the location registered in step 1.

    Nota

    Per semplificare il debug, creare una singola soluzione di Visual Studio .NET che contiene sia il progetto di gestore della logica di business che il progetto per la sincronizzazione della sottoscrizione.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. In questo caso, impostare il progetto di sincronizzazione come progetto di avvio e configurare l'ambiente di compilazione per la distribuzione dell'assembly della logica di business nel percorso registrato nel passaggio 1 durante il debug.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. Eseguire comandi di inserimento, aggiornamento o eliminazione sul database di sottoscrizione o pubblicazione.Execute insert, update, or delete commands against the subscription or publication database. Il comando e il percorso di esecuzione dipendono dal metodo da sottoporre a debug.The command and execution location depends on the method being debugged.

  7. Avviare il progetto dal passaggio 3 in modalità debug per sincronizzare la sottoscrizione.Start the project from step 3 in debug mode to synchronize the subscription.

  8. Presupponendo che non siano stati impostati altri punti di interruzione e che vengano replicati i comandi appropriati, l'esecuzione si arresta quando raggiunge il punto di interruzione nel gestore della logica di business.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.

Per eseguire il debug di un gestore della logica di business in un server Web utilizzando la sincronizzazione tramite il Web oppure per un Sottoscrittore di SQL Server CompactTo debug a business logic handler on a Web server using Web synchronization, or for a SQL Server Compact Subscriber

  1. Configurare la pubblicazione e la distribuzione, creare una pubblicazione, quindi creare una sottoscrizione pull della pubblicazione.Configure publishing and distribution, create a publication, and create a pull subscription to the publication. La pubblicazione deve supportare la sincronizzazione Web o i Sottoscrittori SQL Server CompactSQL Server Compact .The publication must support Web synchronization or SQL Server CompactSQL Server Compact Subscribers.

  2. Creare e registrare un gestore della logica di business.Create and register a business logic handler. Per altre informazioni, vedere Implement a Business Logic Handler for a Merge Article.For more information, see Implement a Business Logic Handler for a Merge Article.

  3. Impostare un punto di interruzione nel codice del gestore della logica di business, in particolare nel metodo sottoposto a debug o nel costruttore della classe.Set a breakpoint in the business logic handler code, either in the method being debugged or in the class constructor. Per altre informazioni sui metodi che è possibile implementare in un gestore della logica di business, vedere gli argomenti relativi ai metodi degli oggetti BusinessLogicModule.For more information about the methods that can be implemented in a business logic handler, see the BusinessLogicModule methods topic.

  4. Compilare il gestore della logica di business in modalità debug e distribuire il file di simboli (pdb) del debug e dell'assembly nel server Web nel percorso registrato nel passaggio 1.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.

    Nota

    Se è impossibile compilare il gestore della logica di business perché l'assembly è in uso, digitare il comando iisreset al prompt dei comandi del server Web per reimpostare il server Web.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. Sincronizzare la sottoscrizione con la sincronizzazione tramite il Web abilitata.Synchronize the subscription with Web synchronization enabled. Durante la sincronizzazione, il server Web carica l'assembly registrato.During synchronization, the Web server loads the registered assembly.

  6. Utilizzando il debugger Visual Studio .NET, collegarsi a uno dei processi seguenti nel server Web: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 e Windows XP.inetinfo.exe - Windows 2000 and Windows XP.

  7. Nella finestra Output controllare l'output di debug per verificare che i simboli per l'assembly registrato siano stati caricati correttamente.In the Output window, check the debug output to verify that the symbols for the registered assembly loaded properly. Se i simboli non sono stati caricati, assicurarsi che nel passaggio 4 sia stato copiato il file con estensione pbd corretto, quindi ripetere il passaggio 5.If the symbols were not loaded, ensure that the correct .pdb file was copied in step 4, and repeat step 5.

  8. Eseguire comandi di inserimento, aggiornamento o eliminazione sul database di sottoscrizione o pubblicazione.Execute insert, update, or delete commands against the subscription or publication database. Il comando e il percorso di esecuzione dipendono dal metodo da sottoporre a debug.The command and execution location depends on the method being debugged.

  9. Utilizzando il debugger di Visual Studio, collegarsi al processo w3wp.exe.Using the Visual Studio debugger, attach to the w3wp.exe process.

  10. Sincronizzare nuovamente la sottoscrizione utilizzando la sincronizzazione tramite il Web.Synchronize the subscription again, using Web synchronization.

  11. Presupponendo che non siano stati impostati altri punti di interruzione e che vengano replicati i comandi appropriati, l'esecuzione si arresta quando raggiunge il punto di interruzione nel gestore della logica di business.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.

Vedere ancheSee Also

Implement a Business Logic Handler for a Merge ArticleImplement a Business Logic Handler for a Merge Article