2011-10-18 71 views

回答

1

我不是WCF的專家,但我在這裏的兩分錢:

在WCF綁定只能配置的問題,這意味着你的WPF客戶端爲WCF終點的web.config和app.config中。

你只需要一個服務,最終多個綁定/端點服務器的web.config

客戶端應用程序將使用兩個端點的一個和客戶端綁定/協議的需要,而無需任何您連接有兩項服務或做出任何具體的改變。

在內聯網netTCPbinding可能是最快的選擇,因爲它傳輸二進制數據,因特網httpBinding應該工作得很好;請注意,您也可以在Intranet中使用httpBinding而不會出現問題,並且它可能會比netTcp綁定的速度慢得多或完全等效,這一切都需要根據您的使用傳輸器類型/內容來證明。

1

我會建議使用HTTP,它將適用於互聯網以及內聯網。 此外,爲了在兩個服務上公開服務,您不需要創建2個服務,只需在配置中創建適當的綁定,然後相同的服務就會暴露在兩個協議上。

2

老實說,我建議做這兩個,這也是我所做的。我認爲公開服務'x'並且能夠根據消費者需求通過'y'或'z'連接是很好的。

當我第一次決定這樣做時,我認爲爲相同服務公開多個綁定類型將是微不足道的。畢竟WCF是關於選項的,所以爲什麼不公開一些你想要的選項,對吧?棘手的部分是你不能擁有(2)具有不同綁定(比如說HTTP和netTCP)的不同服務都使用同一個服務合約。嘗試託管這樣的服務時會出現錯誤。

我想出了一個簡單的抽象,使用額外的接口來允許這件事。現在,您將擁有(2)單獨的合同來執行,每個綁定類型1個,但底下仍然只有一個不重要的代碼庫。看看我寫的一篇文章,用代碼示例解釋了這一點:

Exposing Multiple Binding Types For The Same Service Class In WCF