SharePoint 2013 Workflow Manager 工作流配置注意事项

Workflow Manager 1.0具体安装配置步骤参考TechNet,这里更多的是谈谈配置过程中,我吃过的苦头,希望大家能够有所借鉴,对于微软1.0的产品,真的是太不稳定了,各种坑。

首先,按照TechNet一路安装,配置完毕。需要补充的就是,按照教程配置完毕之后,还要确保满足以下几个要点:

1.出于安全考虑,“安装”帐户不可用于创建基于 SharePoint 2013 Workflow 平台的工作流。如果您尝试通过使用 SharePoint Designer 2013 创建基于 SharePoint 2013 Workflow 平台的工作流,则会接收到一条警告信息,指出工作流操作列表不存在,未创建工作流。

2.将某个用户添加到 SharePoint 网站,并授予该用户“网站设计者”权限。必须将部署和运行工作流的用户添加到 User Profile Service。检查管理中心中的 User Profile Service 应用程序页,以确认要用于验证工作流安装的用户位于 User Profile Service 中。

3.工作流管理器 通过使用 TCP/IP 或命名管道进行通信。确保在承载 工作流管理器 数据库的 SQL Server 实例上启用相应的通信协议。

4.SQL Browser Service 必须在承载 工作流管理器 数据库的 SQL Server 实例上运行。

5.系统帐户不可用于开发工作流。

到现在为止,我们应该就可以使用最新的2013工作流了。

但是,这里就但是了啊!!华丽丽的分割线

---------------------------------------------------------------------------------------------------------------

我在使用过程中两次现下面这个错误。
System.InvalidOperationException: Operation failed with error Microsoft.Workflow.Client.ScopeNotFoundException: 未找到范围“/SharePoint/default”。 从服务器收到了 HTTP 标头 - ActivityId: b7efd88e-9726-4f5f-a0b9-7634901517da。NodeId: SPS2013。Scope: /SharePoint/default/4da92179-a4e7-4983-84eb-5c1c3f4a97f7。 客户端 ActivityId: 30ecf79b-b900-7072-f3df-ce3c6fd3b352。 ---> System.Net.WebException: 远程服务器返回错误: (404) 未找到。

第一次:

  第一次安装配置一切正常,能够制作2013工作流,并且能够发布到网站,也能看到。但是,无论如何,都无法启动工作流,一直报错。进入SharePoint Logs查看,发现上面的错误信息。

  经过逐项排查,发现Service Bus Message Broker服务总是停留在“启动”中,并不能成功启动,无论怎样设置,均无法启动,很崩溃。不得已,只能重装Workflow Manager。

  重装切记,把Workflow Manager、Service Bus服务器场及相关数据库全部删除掉,避免带来安装的麻烦。在重装的时候才发现,原来Workflow Manager内部通讯的9000端口被我后来创建的SharePoint Mysite站点占用,应该就是这个导致Service Bus Message Broker服务无法启动的原因。于是乎,把Workflow Manager的内部通讯端口改成9001,一路安装配置完成,中间又出了个小插曲,在配置过程中的最后一步把本机加入到Workflow Manager服务器场失败了,不得已,手工加入,终于成功(可见这套东西还真的是太不靠谱了,微软1.0版本的东西慎用啊)。

第二次:

  本以为这次一切ok,谁知道,这次错误出现的更早,在我使用SharePoint Designer2013发布工作流的时候就报错了!这一次就头大了,各种排查啊,配置都一切正常!我就在TechNet上逐项,点啊,看啊。。。。。。

  在研读Workflow Manager 1.0文档时,在这个地址http://msdn.microsoft.com/zh-cn/library/windowsazure/jj193504%28v=azure.10%29.aspx,发现有关于范围的描述,会不会跟我们这个错误有关?错误中描述的未找到范围“/SharePoint/default”应该是默认创建的范围,如果不行我们再创建一个新的范围试试看,采用以下PowerShell语句,记得一定要Force(之前没加貌似没用)

Register-SPWorkflowService -SPSite "http://sps2013:100" -WorkflowHostUri "http://sps2013.contoso.com:12291" -AllowOAuthHttp -ScopeName "HollisFlow" -Force

执行完毕之后,iisreset,重新发布工作流,终于一切正常了!

其实想想看,范围这东西还是很有作用,可以基于范围实现多租户的云托管模式,把工作流、实例、活动、消息等都限定在同一个范围中。

posted @ 2013-01-24 23:49  HollisYao  阅读(1233)  评论(1编辑  收藏  举报