2011-05-17 32 views
2

在WCF服務中使用單個端點或多個端點有什麼區別?你有沒有想過使用一種嗎?何時/爲什麼我會在WCF服務中使用多個端點VS單個端點?

在我的情況下,我們有兩個端點:一個用於授權,一個用於數據。一旦通過Auth端點登錄,就可以訪問Data端點並訪問所有數據。

是否有理由將數據端點分成多個端點? Data端點Contract當前由多個.cs類組成,這些類都是一個大型部分類的一部分。

回答

8

如果您的服務正面臨着潛在客戶的不同羣體,多個端點可以使一個很大的意義:

  • 一個使用net.tcp與Windows憑據結合端點可用於公司內部客戶端來自防火牆後面,這些防火牆是根據您的公司Active Directory進行身份驗證的;這種結合是快速的,高性能的,安全是相對無痛建立與AD集成

  • 第二端點可以使用wsHttpBinding和強制執行傳輸層安全(https://) - 使某些客戶端可以在一個安全的被呼叫服務鏈接

  • 第三個端點可能使用了不安全的basicHttpBinding以實現最大後向兼容性 - 例如各種各樣的客戶端(也有很多非.NET客戶端,如Ruby,PHP,其他腳本語言等)都可以連接到這個端點;也許,你的不安全端點將不允許調用的所有方法,也可能有其他的限制(例如,作爲最後優先呼叫處理,只要容量允許的話)

  • 第四端點可能在暴露你同樣的服務webHttpBinding在一個寧靜的方式,讓更多的設備,如手機等,可以連接到它

擁有和暴露多個端點可以讓你的服務更容易到達,你可以從「獲益最可能「綁定每個場景。

+0

這很有道理,謝謝 – Rachel 2011-05-17 16:22:36

+0

如果我有6個或更多的服務合同和一個類實現他們,會有任何性能優勢或劣勢? – 2014-02-25 11:16:37

0

您將按功能使用不同的端點進行邏輯分組,或者使您可以在每個端點的綁定中應用不同級別的安全性。

+0

你能擴展你的意思嗎?「不同級別的安全性」。您是指用戶訪問端點或功能訪問,如Web訪問還是Intranet訪問? – Rachel 2011-05-17 16:10:29

相關問題