调试自定义管道

自定义管道中的消息处理失败时,可以使用源级调试来识别和更正问题。 通过附加到 BTSNTSVC.exe(如果部署自定义管道)或 Pipeline.exe(如果使用独立管道工具),使用 Visual Studio 调试器完成源级别调试。

过程

使用以下过程调试自定义管道。

如何调试已部署的流水线

在“组中心页面”和事件查看器中跟踪查询,可提供有关已部署组件中消息处理失败的有用信息。 此信息通常用于缩小问题的根源。 自定义管道被牵连后,可以使用源级别调试来识别任何有问题的代码。

使用 Visual Studio 调试已部署的自定义管道
  1. 将自定义管道项目解决方案加载到 Visual Studio 中。

  2. 将解决方案的输出路径更改为 <安装文件夹>\管道组件。 在解决方案资源管理器中,右键单击项目,单击“生成”选项卡,然后通过单击“ 浏览 ”按钮并选择 <“安装文件夹>\管道组件”目录来更改输出路径。

  3. 在 Visual Studio 中,单击“ 生成 | 部署”部署解决方案。

  4. 重启运行管道的主机实例。 使用 BizTalk Server 管理控制台,导航到运行管道的主机实例,右键单击主机实例,然后单击“ 重启”。

  5. 将 Visual Studio 调试器附加到 BTSNTSVC.exe。 为此,可以单击“ 调试 | 附加到进程”,单击“显示所有会话中的进程”,然后双击 BTSNTSVC.exe。

  6. 设置断点。

  7. 将消息置于适当的位置以启动自定义管道组件。 处理应在设置的断点上停止。

注释

如果代码引发异常,BizTalk Server 将会捕获该异常,并最终挂起消息。 为了避免此行为,您应该在第一次机会异常时中断。

如何使用 Pipeline.exe 进行调试

还可以使用 Pipeline.exe测试自定义管道。 这样做的优点是不需要部署管道,但代价是未在类似于生产的条件下运行。

注释

如果自定义管道使用平面文件汇编程序/反汇编程序,Pipeline.exe 将无法正确执行。 这是因为 Pipeline.exe 无法访问 BizTalk 数据库。 一种解决方案是删除汇编程序/反汇编程序组件,并使用 FFDasm.exe 和 FFAsm.exe单独测试它们。 有关详细信息,请参阅 管道工具

使用 Pipeline.exe 和 Visual Studio 调试自定义管道
  1. 将自定义管道项目解决方案加载到 Visual Studio 中。

  2. 将解决方案的输出路径更改为 <安装文件夹>\管道组件。 在解决方案资源管理器中,右键单击项目,单击“生成”选项卡,然后通过单击“ 浏览 ”按钮并选择 <“安装文件夹>\管道组件”目录来更改输出路径。

  3. 更改解决方案的启动操作。 在解决方案资源管理器中,右键单击项目,单击“调试”选项卡,单击“启动外部程序”,然后单击 ... ,然后导航到 <“安装文件夹> ”\SDK\Utilities\PipelineTools and choose Pipeline.exe。 在“开始选项”下,输入适合组件的命令行参数。 有关 Pipeline.exe的详细信息,请参阅 管道工具。 典型配置指定管道和示例文件:

    <Path>\YourPipeline.btp -d <Path>\YourTestFile.txt -c  
    
  4. 设置断点。

  5. 按 F5 开始调试。

另请参阅

管道工具