好的,所以我可能會接近這個錯誤,但本質上我試圖在4.0中使用新的WF服務來建立一個Windows服務,託管一個WF服務。目前我已經構建了客戶端(包含一個簡單的Activity XAML)和服務(在XAMLX文件中實現了WF服務)項目。託管工作流與WorkflowServiceHost
我已經嘗試過簡單的「hello worlds」for each one。客戶端託管在WorkflowApplication
中,我最初將該服務設置爲默認的WF服務項目模板。在那裏似乎都很好。
由於我想在沒有IIS的情況下託管一項服務,所以我的下一次嘗試是將我的服務託管在WorkflowServiceHost
中。這樣做,我可以使用XamlServices.Load()
並將它返回的對象連同端點的URI一起傳遞給WorkflowServiceHost
構造函數。我很擔心,因爲類中沒有Run()
成員方法。我假設Open()
方法會將服務主機對象作爲服務來打開,並且它會啓動工作流的實例,但沒有任何指示。
起初,我設置了服務工作流程,以便在開始時寫入文本文件,但沒有發生任何事情。我試圖用斷點進行調試,但由於它在運行時加載了XAMLX文件,因此VS不允許我調試WF。所以我嘗試改變客戶端項目以使用WorkflowServiceHost
而不是WorkflowApplication
。我使用了相同的工作流程來測試hello世界風格的工作流程,這一次沒有輸出到控制檯,並且WorkflowApplication
與之前的成功。
下面是我用客戶端在控制檯項目中託管工作流服務的基礎知識。如果有人想看到工作流程的XAML,請告訴我,我會更新這個問題。這裏是Main()
的託管代碼。
const String clientAddress = "http://localhost:9998/Client";
WorkflowServiceHost wfHost = new WorkflowServiceHost(new ClientWf(), new Uri(clientAddress));
wfHost.Open();
while(Console.ReadKey().KeyChar.ToString().ToUpper() != "X") { }
wfHost.Close();