Condividi tramite


Procedura: Debug di un gestore della logica di business (programmazione della replica)

Utilizzare un gestore della logica di business per richiamare logica di business personalizzata quando viene sincronizzata una sottoscrizione di tipo merge. Per ulteriori informazioni, vedere Esecuzione di logiche di business durante la sincronizzazione di tipo merge.

Il Riconciliatore replica di tipo merge (replrec.dll) chiama l'assembly del codice gestito contenente la logica di business. 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. Nel caso della sincronizzazione tramite il Web o nel caso di un Sottoscrittore SQL Server Compact 3.5 SP1, il riconciliatore e la logica di business personalizzata vengono eseguiti nel server Web.

Per eseguire il debug di un gestore della logica di business in un computer locale

  1. Configurare la pubblicazione e la distribuzione, creare una pubblicazione, quindi creare una sottoscrizione della pubblicazione. Per ulteriori informazioni, vedere Configurazione, modifica e disattivazione della pubblicazione e della distribuzione (replica) e Creazione, modifica ed eliminazione di pubblicazioni e articoli (replica).

  2. Creare e registrare un gestore della logica di business. Per ulteriori informazioni, vedere Procedura: Implementazione di un gestore della logica di business per un articolo di merge (programmazione RMO).

  3. Creare un progetto RMO (Replication Management Objects) in Microsoft Visual Studio che avvia a livello di programmazione l'agente di merge in modo sincrono. Per ulteriori informazioni, vedere Procedura: Sincronizzazione di una sottoscrizione pull (programmazione RMO).

  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. Per ulteriori informazioni sui metodi che è possibile implementare in un gestore della logica di business, vedere gli argomenti relativi ai metodi degli oggetti BusinessLogicModule.

  5. Generare 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.

    [!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. In questo caso, impostare il progetto di sincronizzazione come progetto di avvio e configurare l'ambiente di generazione per la distribuzione dell'assembly della logica di business nel percorso registrato nel passaggio 1 durante il debug.

  6. Eseguire comandi di inserimento, aggiornamento o eliminazione sul database di sottoscrizione o pubblicazione. Il comando e il percorso di esecuzione dipendono dal metodo da sottoporre a debug.

  7. Avviare il progetto dal passaggio 3 in modalità debug per sincronizzare la sottoscrizione.

  8. Presupponendo che non siano stati impostati altri punti di interruzione e che vengano replicati i comandi appropriati, l'esecuzione si interrompe quando raggiunge il punto di interruzione nel gestore della logica di business.

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 Compact

  1. Configurare la pubblicazione e la distribuzione, creare una pubblicazione, quindi creare una sottoscrizione pull della pubblicazione. La pubblicazione deve supportare la sincronizzazione tramite il Web o i Sottoscrittori di SQL Server Compact 3.5 SP1. Per ulteriori informazioni, vedere Progettazione e implementazione: scenari (replica) o Replication and RDA Tasks (SQL Server Compact).

  2. Creare e registrare un gestore della logica di business. Per ulteriori informazioni, vedere Procedura: Implementazione di un gestore della logica di business per un articolo di merge (programmazione RMO).

  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. Per ulteriori informazioni sui metodi che è possibile implementare in un gestore della logica di business, vedere gli argomenti relativi ai metodi degli oggetti BusinessLogicModule.

  4. Generare 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.

    [!NOTA]

    Se è impossibile generare 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.

  5. Sincronizzare la sottoscrizione con la sincronizzazione tramite il Web attivata. Durante la sincronizzazione, il server Web carica l'assembly registrato.

  6. Utilizzando il debugger Visual Studio .NET, collegarsi a uno dei processi seguenti nel server Web:

    • w3wp.exe - Windows Server 2003.

    • inetinfo.exe - Windows 2000 e Windows XP.

  7. Nella finestra Output controllare l'output di debug per verificare che i simboli per l'assembly registrato siano stati caricati correttamente. Se i simboli non sono stati caricati, assicurarsi che nel passaggio 4 sia stato copiato il file pbd corretto, quindi ripetere il passaggio 5.

  8. Eseguire comandi di inserimento, aggiornamento o eliminazione sul database di sottoscrizione o pubblicazione. Il comando e il percorso di esecuzione dipendono dal metodo da sottoporre a debug.

  9. Utilizzando il debugger di Visual Studio, collegarsi al processo w3wp.exe.

  10. Sincronizzare nuovamente la sottoscrizione utilizzando la sincronizzazione tramite il Web.

  11. Presupponendo che non siano stati impostati altri punti di interruzione e che vengano replicati i comandi appropriati, l'esecuzione si interrompe quando raggiunge il punto di interruzione nel gestore della logica di business.