簡體   English   中英

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

[英]Visual Studio: Simultaneously develop WCF client and server

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

在開發過程中將客戶端連接到服務器的推薦方法是什么?

我想到了兩種可能的解決方案:一種是在每次更改后將服務器項目部署到某個IIS,另一種是啟動兩個Visual Studio實例並使用固定的TCP端口(Visual-Studio集成)服務器項目的Web服務器。

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

我這樣做是這樣的:
- 右鍵單擊​​解決方案文件,然后選擇“ 設置啟動項目...”
- 選擇多個啟動項目,然后為客戶端和服務器項目選擇“ 啟動 ”,將其他項設置為“ 無”

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

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

如果您可以使用本地IIS,則可以考慮這一點。

  1. 對於每個WCF服務,我創建了一個Web站點項目。

  2. 此網站項目也作為本地IIS中的Web文件夾共享。 例如http:\\ mylocalmachine \\ WCFService1 \\ servicefile.svc

  3. 在我的WCF客戶端web.config中,服務的URL如上所述。 例如(http:\\ mylocalmachine \\ WCFService1 \\ servicefile.svc)

  4. 由於我不希望每次更改服務時手動部署,在每個WCF服務項目的后期構建中,我都有一個postbuild任務,它將bin目錄的內容復制到該對應WCF服務的網站的bin目錄中(一次設置為postbuild)

  5. 我的文件夾結構是這樣的,對於每個服務項目,都有一個同一級別的服務主機(網站)項目,因此postbuild也非常簡單。

  6. 當我運行我的WCF客戶端(F5)時,服務項目被編譯,其內容被復制到網站bin(即自動部署到IIS),我可以通過插入代碼調試任何服務,因為我的服務是相同的解決方案作為我的WCF客戶端

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

編輯:我沒有把服務主機項目(網站)放在我的解決方案中,否則在運行我的WCF客戶端時,VS會為每個客戶打開一個cassini實例,這很煩人,我不管怎么說都不需要或者使用

暫無
暫無

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

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