Dot-Net

Visual Studio:同時開發WCF客戶端和伺服器

  • September 30, 2010

我需要開發一個 WCF 伺服器(基本上是一個最終將在 IIS 中執行的 Web 服務)和一個訪問該服務的客戶端應用程序。我在同一個 Visual Studio (2008) 解決方案中同時擁有客戶端和伺服器項目。

在開發期間將客戶端連接到伺服器的推薦方式是什麼?

我立即想到了兩種可能的解決方案:一種是在每次更改後將伺服器項目部署到某個 IIS,另一種是啟動兩個 Visual Studio 實例並為(Visual-Studio-integrated)使用固定的 TCP 埠伺服器項目的 Web 伺服器。

由於這些選項對我來說似乎都不是特別優雅,我想知道我是否可能忽略了明顯的“正確方法”來做到這一點……

我這樣做的方式是這樣的:

  • 右鍵點擊您的解決方案文件,然後選擇Set Startup Projects…

  • 選擇Multiple startup projects並為您的客戶端和伺服器項目選擇Start ,將其他設置為**none

現在兩個項目都將在啟動時執行,您將能夠調試它們。

因為我的項目使用了很多 WCF 服務,並且我不想執行太多的 VS 實例進行調試,所以這就是我所做的:-

如果您可以使用本地 IIS,您可以考慮這個。

  1. 對於每個 WCF 服務,我都創建了一個網站項目。
  2. 該網站項目也作為本地 IIS 中的 Web 文件夾共享。例如 http:\mylocalmachine\WCFService1\servicefile.svc
  3. 在我的 WCF 客戶端 web.config 中,服務的 URL 如上所述指定。例如(http:\mylocalmachine\WCFService1\servicefile.svc)
  4. 由於我不想每次更改服務時都手動部署,因此在每個 WCF 服務項目的後期建構中,我有一個後期建構任務,將 bin 目錄的內容複製到相應 WCF 服務的網站的 bin 目錄中( postbuild 的一次設置)
  5. 我的文件夾結構是這樣的,對於每個服務項目,在同一級別都有一個服務主機(網站)項目,因此後期建構也非常簡單。
  6. 當我執行我的 WCF 客戶端 (F5) 時,服務項目被編譯,它們的內容被複製到網站 bin(即自動部署到 IIS),我可以通過單步執行程式碼來調試任何服務,因為我的服務是相同的作為我的 WCF 客戶端的解決方案

這種方法的另一個優點是我的調試(至少服務)也使用 IIS,類似於我的生產設置。

編輯:我沒有將服務宿主項目(網站)放在我的解決方案中,否則在執行我的 WCF 客戶端時,VS 會為每個項目打開一個 cassini 實例,這很煩人,我反正不需要或使用

引用自:https://stackoverflow.com/questions/3831702