簡體   English   中英

從Windows Service托管WCF到ASP.NET客戶端的進度報告(也許是ajax?)

[英]Progress reporting from windows service hosted WCF to ASP.NET client (ajax maybe?)

我們有一個asp.net Webform應用程序(3.5)和一個通過Windows Service(服務啟動時激活的服務庫)托管的WCF服務。 兩者都部署在同一服務器上。

WCF服務用於一些長時間運行的任務。

現在,客戶想要一些自定義的報告,這將花費大量時間。

我的想法是在UI中顯示任務的進度,但是我正在為正確的方法而苦苦掙扎。

是否可以通過以下方式進行,

  1. 根據page的請求,服務異步啟動處理並將狀態報告給某個變量。 (我不想寫數據庫)

  2. 來自客戶端頁面的異步輪詢,該實習生與wcf服務的另一個操作進行通信以檢索變量值。

Ajax客戶端可以與wcf服務進行通信,但看起來該服務需要作為Web應用程序托管(在這里不太了解)

還有其他想法嗎? 關於使用wcf回調(雙工通信)的任何選擇? 太困惑了。

一年前,我們取得了類似的成績。

1)我們創建了具有Singleton InstanceMode的WCF服務器,該服務器可以處理請求並同時保持狀態。 另一個方法,例如GetStatus,將狀態返回給客戶端。 如果有任何錯誤,它還會提供錯誤詳細信息。 但是,我們也堅持了處理細節。

2)在網頁上,一旦請求初始化並在網頁上顯示進度條,我們將異步點擊getstatus。

這對我們來說很棒。

您可以考慮使用諸如SignalR之類的東西將響應從Web應用程序推送到客戶端(除其他好處外,這還使用了Comet技術,從而減少了您必須進行的輪詢量)。

要獲得WCF服務對Web應用程序的響應,可以使用對該服務的異步請求 ,也可以使用諸如Windows Azure Service Bus之類的消息解決方案。

我們使用Client > JQuery > MVC > WCF > Service Bus > MVC > SignalR > Client作為管道,它對於長時間運行的進程非常有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM