2010-10-23 96 views
1

這是我的場景...我有一個WPF應用程序與WCF服務交談。WCF服務與QA和PROD的版本

連接字符串設置位於WCF服務中。 WCF服務可以部署到兩個不同的網站,一個用於QA,一個用於PROD(每個都有自己的URI)。

我希望我的WPF應用程序能夠使用QA數據或PROD數據運行。基本上,我會在啓動時將參數傳遞給WPF應用程序,這將是QA或PROD。

我想這樣做是部署完全相同的WCF服務的代碼與正在各自的web.config文件中的連接字符串的值,唯一不同的QA和PROD網站。

然後,我會需要一種方法必須在WPF應用工廠模式,將返回基於傳入的QA/PROD參數的WCF接口(代理)。

我需要確保在WPF應用程序中,WCF界面(代理)在QA和PROD參考中被視爲相同類型。

畢竟,結果將是...如果用戶啓動了WPF應用程序並通過了QA,那麼每次調用WCF服務都會返回QA數據,並且如果它們傳遞了PROD,則每次調用WCF服務都會返回PROD數據。

我可以簡單地通過質量檢查或PROD作爲參數傳遞給每一個WCF服務方法,但似乎粗。由於WCF是無狀態的,沒有構造函數,所以我需要找到一個更靈活的解決方案。

回答

1

這不是一個選項,部署2個獨立網址的服務?

  1. 服務URL 1 - QA URL - >此的web.config具有QA連接字符串
  2. 服務URL 2 - PROD URL - >此的web.config已PROD連接串

的使用WCF服務的WPF應用程序很可能只有自己的配置文件與服務主機。

在WPF應用程序,

,如果你需要連接到QA URL - >更改的app.config指向URL1

,如果你需要連接到PROD URL - >您而變在app.config指向URL2

這將大大簡化你的問題,如果我理解正確的話。

這樣,有一個在您的應用程序,你在決定連接到哪個DB沒有邏輯。它只是一個簡單的問題,在您的應用程序中配置正確的URL並且其他所有內容都從此處流動。