2010-07-05 125 views
0

我正在使用ASP.NET安全模型的Web服務(即將AspNetCompatibilityRequirements設置爲允許)。和許多人一樣,我因爲mexHttpBinding需要它,只有這樣,才能避開它是從每個服務中刪除MEX終結點這裏描述需要一個錯誤,說的匿名訪問:IMetadataExchange端點實際上做了什麼?

WCF - Windows authentication - Security settings require Anonymous

我想通過刪除mex端點,我將不再能夠生成WSDL或從Visual Studio添加對服務的引用,但令我驚訝的是一切仍然有效。我很快搜索到了「mex綁定」,但大多數網站只是說它是針對「元數據交換」,而沒有詳細說明它的實際功能。

誰能告訴我卸下mex綁定的副作用是什麼?

回答

0

如果您的WCF服務沒有公開服務元數據,則無法從Visual Studio(添加服務引用)中爲其添加服務引用,也不能向其他客戶端詢問其服務的方法和數據它需要。

刪除元數據交換(mex)基本上呈現服務「不可見」,幾乎 - 潛在的調用者必須找到其他方式(例如通過提供WSDL文件,或通過獲得與他的客戶端的類庫程序集可以使用)關於服務可以做什麼以及如何做。

對於高風險環境,這可能是可以的,但大多數情況下,能夠詢問服務並通過元數據描述自己是您希望啓用的功能。這實際上是基於SOAP服務的主要優點之一 - 憑藉元數據,它可以描述自身,操作以及所需的所有數據結構。該功能用於使該服務非常易於調用 - 您只需指向mex端點,即可找到所需的關於該服務的所有信息。

0

如果沒有元數據交換,您將無法使用svcutil.exe自動生成代理類。

相關問題