2009-02-11 60 views
1

繼我上一個問題[鏈接文本] [1]後,我遇到了一個新問題。.NET 3.5 - 從WPF應用程序多次異步調用web服務

我有一個將調用Web服務的WPF應用程序。這個網絡服務將通過按下'GO'按鈕來異步調用。結果可能需要30秒左右才能回來。

問題是我希望用戶能夠多次點擊'GO'按鈕,因爲他們想發出多個請求。

什麼我想要的是客戶端打開一個新的連接到web服務每次按下按鈕。 Web服務的方法很簡單:

invokeExecutionRequest(INT流程id)

此方法只返回一個標誌specfying成功或失敗的執行請求。

現在如果可能的話,我真的不想在客戶端上排隊這些請求,因爲服務器上已經建立了一個隊列。什麼是最優雅的方式來實現這一目標?

+0

你以前的問題的鏈接中斷 – 2009-02-11 07:48:22

回答

1

如果您正在使用WCF通信到您的Web服務,那麼你可以控制連接打開/關閉:

  1. 有一個普遍的WCF連接(可能爲窗口的範圍,全局變量)
  2. 每次點擊Go按鈕時,檢查連接是否打開。如果沒有打開連接,那麼就沒有任何事情要做。
  3. 在某個邏輯點(關閉窗口,做一些意味着Go不會被點擊的操作)關閉連接。
+0

唯一的問題是我沒有使用WCF,只有香草ASMX網絡服務。 – Alex 2009-02-11 11:54:22

0

我最終只是使用BackGroundWorkers來觸發Web服務請求。我認爲我們仍然以這種方式開放多個連接,但是請求的數量並不大,我們正在考慮改變我們的體系結構,以便發送給隊列處理程序的一個主請求可以啓動所有其他請求。

如果我有更多時間來解決這個問題,我認爲WCF將是最好的選擇。