如何调试业务逻辑处理程序(复制编程)

同步合并订阅时使用业务逻辑处理程序调用自定义业务逻辑。有关详细信息,请参阅在合并同步期间执行业务逻辑

合并复制协调器 (replrec.dll) 调用包含业务逻辑的托管代码程序集。在大多数情况下,replrec.dll 和自定义业务逻辑是在运行合并代理的计算机上执行的(对于请求订阅,在订阅服务器上执行;对于推送订阅,在分发服务器上执行)。在 Web 同步或 SQL Server Compact 3.5 SP1 订阅服务器的情况下,协调器和自定义业务逻辑在 Web 服务器上执行。

在本地计算机上调试业务逻辑处理程序

  1. 配置发布和分发,创建一个发布,然后创建该发布的一个订阅。有关详细信息,请参阅配置、修改和禁用发布和分发(复制)创建、修改和删除发布和项目(复制)

  2. 创建和注册业务逻辑处理程序。有关详细信息,请参阅如何为合并项目实现业务逻辑处理程序(RMO 编程)

  3. 在以编程的方式同步启动合并代理的 Microsoft Visual Studio 中创建一个复制管理对象 (RMO) 项目。有关详细信息,请参阅如何同步请求订阅(RMO 编程)

  4. 在业务逻辑处理程序代码中,于正在调试的方法中或类构造函数中设置一个断点。有关可在业务逻辑处理程序中实现的方法的详细信息,请参阅 BusinessLogicModule 方法主题。

  5. 在调试模式下生成业务逻辑处理程序,并将程序集和调试符号文件 (.pdb) 部署在步骤 1 中注册的位置。

    注意注意

    若要简化调试,请创建一个同时包含业务逻辑处理程序项目和同步订阅的项目的 Visual Studio .NET 解决方案。在这种情况下,请将同步项目设置为启动项目,并将生成环境配置为在调试过程中将业务逻辑程序集部署到步骤 1 中注册的位置。

  6. 对订阅数据库或发布数据库执行插入、更新或删除命令。命令和执行位置取决于正在调试的方法。

  7. 在调试模式下启动步骤 3 中的项目以同步订阅。

  8. 假定未设置任何其他断点且复制了正确的命令,则执行将在到达业务逻辑处理程序中的断点时停止。

在 Web 服务器上使用 Web 同步或为 SQL Server Compact 订阅服务器调试业务逻辑处理程序

  1. 配置发布和分发,创建一个发布,然后创该发布的建一个请求订阅。该发布必须支持 Web 同步或 SQL Server Compact 3.5 SP1 订阅服务器。有关详细信息,请参阅设计和实现:演练(复制)Replication and RDA Tasks (SQL Server Compact)

  2. 创建和注册业务逻辑处理程序。有关详细信息,请参阅如何为合并项目实现业务逻辑处理程序(RMO 编程)

  3. 在业务逻辑处理程序代码中,于正在调试的方法中或类构造函数中设置一个断点。有关可在业务逻辑处理程序中实现的方法的详细信息,请参阅 BusinessLogicModule 方法主题。

  4. 在调试模式下生成业务逻辑处理程序,并将程序集和调试符号文件 (.pdb) 部署在 Web 服务器上步骤 1 中注册的位置。

    注意注意

    如果由于程序集正在使用而无法生成业务逻辑处理程序,则在 Web 服务器上,在命令提示符处键入命令 iisreset 以重置 Web 服务器。

  5. 在启用 Web 同步的情况下同步订阅。同步期间,Web 服务器将加载注册的程序集。

  6. 使用 Visual Studio .NET 调试器,在 Web 服务器上附加到下列进程之一:

    • w3wp.exe - Windows Server 2003。

    • inetinfo.exe - Windows 2000 和 Windows XP。

  7. 在**“输出”**窗口中,检查调试输出以验证注册程序集的符号是否正确加载。如果未加载符号,请确保在步骤 4 中复制了正确的 .pdb 文件,然后重复步骤 5。

  8. 对订阅数据库或发布数据库执行插入、更新或删除命令。命令和执行位置取决于正在调试的方法。

  9. 使用 Visual Studio 调试器,附加到 w3wp.exe 进程。

  10. 使用 Web 同步再次同步订阅。

  11. 假定未设置任何其他断点且复制了正确的命令,则执行将在到达业务逻辑处理程序中的断点时停止。