WCF元數(shù)據(jù)交換應(yīng)用技巧分享
WCF開(kāi)發(fā)工具已經(jīng)出現(xiàn),就被大多數(shù)開(kāi)發(fā)人員所關(guān)注,它獨(dú)特的功能特點(diǎn)也使其立即成為了開(kāi)發(fā)領(lǐng)域中一個(gè)重要的應(yīng)用工具。在這里我們就一起來(lái)了解一下有關(guān)WCF元數(shù)據(jù)交換的相關(guān)操作技巧。我們的都知道服務(wù)有兩種方案可以發(fā)布自己的元數(shù)據(jù)。一種是基于HTTP-GET協(xié)議提供元數(shù)據(jù),另一種則是后面將要討論的使用專(zhuān)門(mén)的終結(jié)點(diǎn)的方式。#t#
WCF能夠?yàn)榉?wù)自動(dòng)提供基于HTTP-GET 的元數(shù)據(jù),但需要顯式地添加服務(wù)行為(Behavior)以支持這一功能。本書(shū)后面的章節(jié)會(huì)介紹行為的相關(guān)知識(shí)。現(xiàn)在,我們只需要知道行為屬于服務(wù)的本地特性,例如是否需要基于HTTP-GET交換元數(shù)據(jù),就是一種服務(wù)行為。我們可以通過(guò)編程方式或管理方式添加行為。演示的宿主應(yīng)用程序的配置文件中,所有引用了定制配置節(jié)的托管服務(wù)都支持基于HTTP-GET協(xié)議實(shí)現(xiàn)元數(shù)據(jù)交換。為了使用HTTP-GET,客戶端使用的地址需要注冊(cè)服務(wù)的HTTP基地址。我們也可以在行為中指定一個(gè)外部URL以達(dá)到同樣的目的。
使用配制文件啟用WCF元數(shù)據(jù)交換行為
- < system.serviceModel>
- < services>
- < service name = "MyService" behaviorConfiguration = "MEXGET">
- < host>
- < baseAddresses>
- < add baseAddress = "http://localhost:8000/"/>
- < /baseAddresses>
- < /host>
- ...
- < /service>
- < service name = "MyOtherService" behaviorConfiguration = "MEXGET">
- < host>
- < baseAddresses>
- < add baseAddress = "http://localhost:8001/"/>
- < /baseAddresses>
- < /host>
- ...
- < /service>
- < /services>
- < behaviors>
- < serviceBehaviors>
- < behavior name = "MEXGET">
- < serviceMetadata httpGetEnabled = "true"/>
- < /behavior>
- < /serviceBehaviors>
- < /behaviors>
- < /system.serviceModel>
一旦啟用了基于HTTP-GET的WCF元數(shù)據(jù)交換,在瀏覽器中就可以通過(guò)HTTP基地址(如果存在)進(jìn)行訪問(wèn)。如果一切正確,就會(huì)獲得一個(gè)確認(rèn)頁(yè)面,如圖所示,告知開(kāi)發(fā)者已經(jīng)成功托管了服務(wù)。確認(rèn)頁(yè)面與IIS托管無(wú)關(guān),即使使用自托管,我們也可以使用瀏覽器定位服務(wù)地址。