Wcf 在Sharepoint工作流中使用ReceiveActivity

Wcf 在Sharepoint工作流中使用ReceiveActivity,wcf,sharepoint,workflow,Wcf,Sharepoint,Workflow,我在sharepoint中创建了我的第一个小工作流,我正在尝试使用ReceiveActivity从外部访问它。我已使用创建了一个WCF svc文件 并在IIS中创建了与sharepoint网站具有相同应用程序池的网站 现在,我可以从我的doclib启动工作流,但是当我尝试访问下面的ReceiveActivity时,我得到以下错误:“工作流宿主环境没有工作流实例上的操作所需的持久性服务” 我认为这与我自己的WCF网站没有使用Sharepoint持久性服务有关,但我不确定。有什么想法吗 DoMyTh

我在sharepoint中创建了我的第一个小工作流,我正在尝试使用ReceiveActivity从外部访问它。我已使用创建了一个WCF svc文件

并在IIS中创建了与sharepoint网站具有相同应用程序池的网站

现在,我可以从我的doclib启动工作流,但是当我尝试访问下面的ReceiveActivity时,我得到以下错误:“工作流宿主环境没有工作流实例上的操作所需的持久性服务”

我认为这与我自己的WCF网站没有使用Sharepoint持久性服务有关,但我不确定。有什么想法吗

DoMyThingContractClient proxy = new DoMyThingContractClient ();

IContextManager contextManager = proxy.InnerChannel.GetProperty<IContextManager>();

IDictionary<string, string> context = contextManager.GetContext();
context.Add("instanceId", myInstanceId);
contextManager.SetContext(context);

result = proxy.GetMyMethod(tb1.Text, tb2.Text);
domaythingcontractclient proxy=new-domaythingcontractclient();
IContextManager contextManager=proxy.InnerChannel.GetProperty();
IDictionary context=contextManager.GetContext();
添加(“instanceId”,myInstanceId);
SetContext(context);
结果=proxy.GetMyMethod(tb1.Text,tb2.Text);

您是否创建了承载工作流的SQL表?位于
C:\Windows\Microsoft.NET\Framework\v3.0\Windows工作流基金会\SQL\en
?如果您这样做了,您现在需要将所需的标记添加到您的配置中(在本例中,您的WCF文件夹包含svc文件),如前所述

注释后编辑:尝试在代码中运行持久性服务:

SqlWorkflowPersistenceService ps = new SqlWorkflowPersistenceService("Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI");
currentWorkflowRuntime.AddService(ps);

您好,不,我没有创建这些表,因为sharepoint承载工作流,而不是我自己的应用程序。Sharepoint有自己的持久性服务,所以这样做对我来说没有意义。工作流在sharepoint(包括持久性)中运行良好,我就是无法让ReceiveActivity正常工作。巴特