3

已解决-请参阅下面的更新...

  1. 我在单独的工作流活动项目中创建了活动
  2. 在我的 SharePoint 项目中,我添加了对活动项目的引用
  3. 我还将活动项目的输出包含到 SharePoint 包中(部署到 GAC)
  4. 接下来在我的 SharePoint 项目中,我创建了一个预部署 msbuild 操作,以将我的活动 dll 复制到工作流管理器目录(活动和 WFWebRoot\bin)。
  5. 当然我也在两个相关目录中放了一个“AllowedTypes.xml”。
  6. 我没有自动重新启动工作流管理器后端服务。我相信我只需要在 .xml 文件发生更改时重新启动它,对吧?或者任何时候我的活动.dll 发生变化?

现在我的问题是我无法调试我的工作流 CodeActivity。工作流工作正常并附加到 workflow.servicehost.exe 我可以在 Visual Studio 中调试我的工作流 - 它会在任何声明性工作流活动上命中断点。不幸的是,我的自定义 CodeActivity 中的任何断点都没有被击中:(

任何想法?显然,我在同一台机器上运行了 SharePoint 和 Workflow Manager。我不确定为什么需要将活动 dll 部署到 GAC - 和 iisreset?!(见这篇技术网文章

更新:一些经验教训......

  1. 在部署之前停止 WorkflowServiceBackend(我正在使用构建事件)。
  2. 在部署后事件上再次启动 WorkflowServiceBackend。
    否则,工作流服务可能会阻止对 GAC 的活动程序集的访问,并且不会被替换。它发生在我身上。现在,您(应该)知道任何 GAC 程序集总是比任何“本地”程序集更受欢迎。显然工作流服务使用了我的 GAC 程序集——我还需要将我的活动程序集复制到 artifcats 和 wfwebroot\bin 吗?不。我从工作流管理器目录中删除了我的 dll,我仍然能够毫无问题地执行和调试我的工作流活动。
4

0 回答 0