[英]Running a process asynchronously with feedback from ASP.NET via WCF (C#)
(環境.NET 4.0 C#WCF和ASP.NET)
所以這是我想要發生的流程:
我在數據庫中添加了一個名為“ UploadProcessing”的表,該表保留了上載的狀態(除其他外),並且我編寫了在后端處理上載的邏輯,該邏輯由WCF服務調用。 在處理上載時,它將上載具有工作當前狀態的“ UploadProcessing”記錄,直到最終完成。
我首先從僅調用WCFClient.ProcessUpload(args...);
從Commit_Click()
事件中獲取,但僅處理了上傳並等待完成,然后再啟用AJAX更新狀態計時器,該計時器始終顯示已完成(因為已完成)。 然后,我嘗試異步調用相同的方法,但是它似乎以相同的方式起作用,因為在異步完成處理程序得到響應之前,頁面不會完全發回到客戶端(使用啟用的計時器),從而有效地導致了相同的“已完成”對用戶的回復。
因此,我有禮貌地向社區詢問,您將如何通過WCF來“觸發並忘記”此ProcessUpload()
方法,以便它可以在后台執行其操作,同時頁面可以自由地異步回發並監視其狀態? 也許在WCF方面有某種ThreadPool解決方案? 還是從服務監視“ UploadProcessing”表中的未決上載,然后以這種方式處理?
預先感謝您的任何建議!
建議將WCF方法設為OneWay操作,例如
[OperationContract(IsOneWay = true)]
public void ProcessUpload(...)
{
//etc
}
聽起來您正在按照正確的方式進行操作,也許您對WCF服務的異步設置不是很正確嗎? 這個問題的答案有一些有用的鏈接,這是MSDN頁面上的異步調用WCF服務操作 。
更新 :看來此博客文章幾乎完全涵蓋了您的問題,對您來說似乎是一個很好的資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.