2010-09-01 90 views
0

我有一個Windows工作流服務4.0,調用位於另一個項目(即另一個組件)中的工作流。工作流服務不調用另一個項目中的工作流程

我在我的工作流服務項目中創建了一個項目引用到其他程序集中的工作流。

我已經在工作流服務接收活動中設置了一個斷點,並且該斷點被命中。

接下來,我介紹下一個活動,它是位於另一個項目中的活動,並且調試器不起作用。

另一個工作流程是發送電子郵件。看起來其他工作流程沒有被調用,因爲我從來沒有收到來自另一個項目工作流程的電子郵件。

任何幫助,非常感謝。

這個問題很容易重現在Visual Studio 2010

1)創建一個新的WCF工作流服務應用程序項目,並保存解決方案。

2.)添加一個新的活動庫到解決方案。

3.)在活動庫中,轉到工具箱並添加序列活動。添加寫入事件日誌的代碼活動。編譯活動庫並從工具箱中將代碼活動寫入到Windows事件日誌中以將其添加到序列活動中。

4.)在工作流服務項目中,將項目引用添加到活動庫項目中。

5.)在工作流服務項目中,在ReceiveRequest活動和活動庫工作流活動之後。

6.)在工作流服務項目ReceiveRequest活動中設置斷點,並在寫入事件日誌的活動庫代碼活動行中設置另一個斷點。

7.)運行調試器,您將看到活動庫斷點永遠不會被命中,而且如果您在沒有調試器的情況下運行,活動庫永遠不會執行(您可以檢查Windows事件日誌以確認活動庫從未執行)。

請提出建議。

回答

0

我已經想出瞭解決問題的辦法!

問題是,您不能只刪除SendResponse活動(使其成爲「單向」Fire and Forget)並在ReceiveRequest活動之後添加位於另一個項目中的ActivityLibrary活動。您需要刪除ReceiveRequest活動並刪除SendResponse活動,並將ReceiveRequest活動替換爲接收活動以使其成爲「單向」。

這裏是我做過什麼來解決這個問題:

1)我刪除ReceiveRequest和SendResponse活動。

2.)我添加了一個接收活動並將CanCreateInstance屬性設置爲True。

3。)我在接收活動之後從位於另一個項目中的ActivityLibrary添加了Activity。

好價錢!現在起作用了。

Leo Cono - http://www.PeopleFriends.com

相關問題