2010-03-11 96 views
1

我在SharePoint中創建了我的第一個小工作流程,並試圖使用ReceiveActivity從外部訪問它。我創建了一個WCF SVC文件與在Sharepoint工作流中使用ReceiveActivity

和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); 

回答

0

您是否創建了承載工作流的SQL表?那些在C:\Windows\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\en?如果你這樣做,你現在需要添加所需的標籤到你的配置文件(在這種情況下你的WCF的文件夾與svc文件),如at msdn解釋。評論後

編輯:嘗試在你的代碼運行一個持久性服務:

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

嗨, 不,我沒有創建這些表,因爲SharePoint託管工作流,而不是我自己的應用程序。 Sharepoint擁有自己的持久性服務,所以我這樣做沒有意義。該工作流在SharePoint內工作正常(包括持久性),我只是無法使ReceiveActivity正常工作。 Bart – Bart 2010-03-16 07:55:40