0
我試圖建立一個請求提交/批准/完成場景的模型。我正在使用WorkflowServiceHost在控制檯應用程序中使用作爲服務託管的流程圖工作流程。該工作流具有對IIS中託管的WCF服務的服務引用,該第二個服務與應用程序數據庫進行交互。我有一個aspnet前端,提供對託管工作流服務的服務引用,並從代理客戶端調用其方法。使用ASPNET的工作流4:併發性和狀態檢查
工作流正在使用我使用提供的腳本創建的持久性數據庫。
這種情況是服務的請求是由用戶做出的。該請求必須由特定人員批准一次(我在一個分支中使用延遲選擇來提醒該人員,如果沒有決定到達,另一個分支是接收決定)。對於某些服務,請求必須獲得批准人中的任何一個可以完成的第二次批准。一旦批准完成,請求會發送給另一個人完成。
我有工作,但3個問題:
- 在ASPNET主頁我有一個鏈接請求到頁面完全作爲代理適當和調用方法後,他們重定向回清單批准/但因爲它都是異步的,我不得不手動刷新主頁以查看更改的列表。我堅持強制頁面每隔x秒刷新一次以解決這個問題,還是有辦法讓它同步/檢查工作流狀態/等待消息回來嗎?只是按下按鈕並不知道該操作是否成功。
- 有沒有辦法阻止某人在池中的其他人批准之後立即批准請求?此時第二個人沒有碰到按鈕(這很好)。在工作流持久性數據庫中,我可以看到阻塞書籤是下一個活動(大概由首先到達那裏的人設置),因此看起來好像第二次接收不會發生。我有WCF數據服務中的併發檢查代碼,但這永遠不會觸發,因爲沒有嘗試更新數據庫。我希望能夠警告第二個人,其他用戶先到達那裏。
- 我在網頁應用程序中的主頁列表是通過查詢應用程序數據庫構建的,但可以通過查詢工作流來查找每個項目的狀態,傳遞項目的ID(我使用id作爲相關句柄) ?這樣做是正常的還是人們通常只是查詢應用程序數據庫?
謝謝。 1)我的確在考慮Ajax,但不知道如何去做,會看看一些教程
2)我嘗試將其中一個接收轉換爲ReceiveAndSendReply(接收都在Pick分支的Trigger部分中)但我剛剛得到了你所描述的暫停。這是一個問題,因爲併發很重要。3)你是怎麼做到的?我可以看到阻止書籤,但我看不到項目標識 - 是否需要解密某些內容? – Nix 2011-03-16 07:44:54
您可以按原樣查看阻止書籤,如果您使用屬性提升功能,則可以從工作流程中提取其他變量並從數據庫中檢索它們。 – Maurice 2011-03-16 09:09:11
我在asp端做了一些等待消息回來的工作。但是我曾經能夠一次提交2個接收,所以我的併發異常從wcf發起。我試圖在工作流中實現Try Catch,但工作流似乎陷入了故障狀態,即使它捕捉到異常。我開始嘗試拋出一個FaultException定義爲FaultContract,但出現錯誤:沒有簽名消息部分被指定給消息......我被卡住了。我是否必須使用FaultContract,以及如何停止工作流程錯誤,並只是將異常或消息傳遞給asp? – Nix 2011-03-16 17:48:48