2

是否可以调试编码的 Windows Workflow .Net 4.0.1 自托管 WorkflowServiceHost?我有

<system.web>
  <compilation debug="true" />
</system.web>

在 app.config 文件中设置。但是,每当我设置断点时,调试器都会在构建 WorkflowServiceHost 对象时停止,而不是在单个工作流实例到达断点时停止。

通过“编码”,我的意思是工作流是在 C# 中指定的,而不是在可视化设计器中。

4

2 回答 2

4

对于托管在不同容器中的各种流程图和顺序工作流,我处于类似的位置。我发现在测试工作流时,使用 Microsoft.Activities.UnitTesting 框架让我的生活变得更加轻松。该库以 nuGet 包的形式提供。在这里完成详细信息

它使在“测试主机”中运行工作流变得非常容易,这些特殊类提供了运行工作流的能力,就像它们通常在工作流调用程序、工作流服务主机等中运行一样,但提供了大量功能,允许您调试、跟踪您的工作流程。

入门很简单,已经提供了大量示例(包括用于测试工作流服务托管工作流的示例)。

我强烈推荐使用这个库,它几乎没有学习曲线,而且它使测试工作流变得非常容易。

希望这可以帮助。

不过需要注意的是,如果您打算使用 .NET framework 4 Platform Update 1,请确保您已安装它。此处提供有关此更新的更多详细信息

于 2012-07-11T21:41:36.620 回答
1

您的工作流 dll 是否位于不同的项目中?

MSDN

如果工作流宿主应用程序和工作流 DLL 位于不同的 Visual Studio 项目中,例如,当您使用工作流活动库时,必须将工作流 DLL 项目设置为 Visual Studio 解决方案启动项目,才能使用 F5 调试工作流。您还必须在工作流 DLL 项目的启动外部程序属性中设置宿主应用程序的路径。

要在解决方案资源管理器中设置启动项目,请右键单击项目名称并选择设置为启动项目。要在“启动外部程序”属性中设置主机路径,请在“解决方案资源管理器”中双击工作流项目的“属性”节点,然后选择“调试”选项卡。在“启动操作”下,选择“启动外部程序”并输入托管您要调试的工作流的 .exe 文件的路径。

如果宿主应用程序设置为启动项目,则只调用Visual Studio调试器进行调试;未调用适用于 Windows Workflow Foundation 的 Visual Studio 2010 调试器。如果使用 Visual Studio 调试器,则只命中 C# 或 Visual Basic 代码断点;在工作流设计器中设置的断点不会被命中。例如,如果使用适用于 Windows Workflow Foundation 的 Visual Studio 2010 调试器,则在设计器中设置的 ParallelActivity 活动上设置断点,但在使用 Visual Studio 调试器时不会。

看看对你有没有帮助。

于 2012-07-09T12:05:24.750 回答