다음을 통해 공유


비즈니스 논리 처리기 디버깅(복제 프로그래밍)

적용 대상: SQL Server

비즈니스 논리 처리기를 사용하여 병합 구독이 동기화될 때 사용자 지정 비즈니스 논리를 호출할 수 있습니다. 자세한 내용은 병합 동기화 중 비즈니스 논리 실행을 참조하세요.

replrec.dll(병합 복제 조정자)는 비즈니스 논리를 포함하는 관리 코드 어셈블리를 호출합니다. 대부분의 경우 replrec.dll 및 사용자 지정 비즈니스 논리는 병합 에이전트가 실행되는 컴퓨터(끌어오기 구독의 구독자 또는 밀어넣기 구독의 배포자)에서 실행됩니다. 웹 동기화의 경우, 또는 SQL Server Compact 구독자의 경우 조정자와 사용자 지정 비즈니스 논리가 웹 서버에서 실행됩니다.

로컬 컴퓨터에서 비즈니스 논리 처리기를 디버그하려면

  1. 게시 및 배포를 구성하고 게시를 만들고 게시에 대한 구독을 만듭니다. 자세한 내용은 게시 및 배포 구성게시 만들기를 참조하세요.

  2. 비즈니스 논리 처리기를 만들고 등록합니다. 자세한 내용은 병합 아티클에 대한 비즈니스 논리 처리기 구현을 참조하세요.

  3. Microsoft Visual Studio에서 프로그래밍 방식으로 병합 에이전트를 동기적으로 시작하는 RMO(복제 관리 개체) 프로젝트를 만듭니다. 자세한 내용은 끌어오기 구독 동기화를 참조하세요.

  4. 비즈니스 논리 처리기 코드에서 디버깅 대상 메서드 또는 클래스 생성자 내에 중단점을 설정합니다. 비즈니스 논리 처리기에서 구현할 수 있는 메서드에 대한 자세한 내용은 BusinessLogicModule 메서드 항목을 참조하세요.

  5. 비즈니스 논리 처리기를 디버그 모드로 빌드하고 어셈블리와 디버깅 기호 파일(.pdb)을 1단계에서 등록한 위치에 배포합니다.

    참고 항목

    디버깅을 간소화하려면 비즈니스 논리 처리기 프로젝트와 구독을 동기화하는 프로젝트를 모두 포함하는 단일 Visual Studio .NET 솔루션을 만듭니다. 이 경우 동기화 프로젝트를 시작 프로젝트로 설정하고 디버깅 중에 1단계에 등록된 위치에 비즈니스 논리 어셈블리를 배포하도록 빌드 환경을 구성합니다.

  6. 구독 또는 게시 데이터베이스에 대해 삽입, 업데이트 또는 삭제 명령을 실행합니다. 명령 및 실행 위치는 디버그되는 메서드에 따라 달라집니다.

  7. 디버그 모드의 3단계에서 프로젝트를 시작하여 구독을 동기화합니다.

  8. 다른 중단점이 설정되지 않고 적절한 명령이 복제된 경우 비즈니스 논리 처리기의 중단점에 도달하면 실행이 중지됩니다.

웹 동기화를 사용하는 웹 서버 또는 SQL Server Compact 구독자의 비즈니스 논리 처리기를 디버깅하려면

  1. 게시 및 배포를 구성하고 게시를 만들고 게시에 대한 끌어오기 구독을 만듭니다. 게시는 웹 동기화 또는 SQL Server Compact 구독자를 지원해야 합니다.

  2. 비즈니스 논리 처리기를 만들고 등록합니다. 자세한 내용은 병합 아티클에 대한 비즈니스 논리 처리기 구현을 참조하세요.

  3. 비즈니스 논리 처리기 코드에서 디버깅 대상 메서드 또는 클래스 생성자 내에 중단점을 설정합니다. 비즈니스 논리 처리기에서 구현할 수 있는 메서드에 대한 자세한 내용은 BusinessLogicModule 메서드 항목을 참조하세요.

  4. 비즈니스 논리 처리기를 디버그 모드로 빌드하고 웹 서버에서 어셈블리와 디버깅 기호 파일(.pdb)을 1단계에서 등록한 위치에 배포합니다.

    참고 항목

    어셈블리가 사용 중이므로 비즈니스 논리 처리기를 빌드하지 못하는 경우 명령 프롬프트에서 웹 서버의 명령 iisreset을 입력하여 웹 서버를 다시 설정합니다.

  5. 웹 동기화를 설정하고 구독을 동기화합니다. 동기화 중에 웹 서버는 등록된 어셈블리를 로드합니다.

  6. Visual Studio .NET 디버거를 사용하여 웹 서버에서 다음 프로세스 중 하나에 연결합니다.

    • w3wp.exe - Windows Server 2003.

    • inetinfo.exe - Windows 2000 및 Windows XP.

  7. 출력 창에서 디버그 출력을 확인하여 등록된 어셈블리의 기호가 제대로 로드되었는지 확인합니다. 기호가 로드되지 않은 경우 4단계에서 올바른 .pdb 파일을 복사했는지 확인하고 5단계를 반복합니다.

  8. 구독 또는 게시 데이터베이스에 대해 삽입, 업데이트 또는 삭제 명령을 실행합니다. 명령 및 실행 위치는 디버그되는 메서드에 따라 달라집니다.

  9. Visual Studio 디버거를 사용하여 w3wp.exe 프로세스에 연결합니다.

  10. 웹 동기화를 사용하여 구독을 다시 동기화합니다.

  11. 다른 중단점이 설정되지 않고 적절한 명령이 복제된 경우 비즈니스 논리 처리기의 중단점에 도달하면 실행이 중지됩니다.