快速利用配置文件啟用WCF元數(shù)據(jù)交換
WCF還是比較常用的,于是我研究了一下WCF元數(shù)據(jù)交換,在這里拿出來和大家分享一下,希望對(duì)大家有用。我們的都知道服務(wù)有兩種方案可以發(fā)布自己的元數(shù)據(jù)。一種是基于HTTP-GET協(xié)議提供元數(shù)據(jù),另一種則是后面將要討論的使用專門的終結(jié)點(diǎn)的方式。
#T#WCF能夠?yàn)榉?wù)自動(dòng)提供基于HTTP-GET 的元數(shù)據(jù),但需要顯式地添加服務(wù)行為(Behavior)以支持這一功能。本書后面的章節(jié)會(huì)介紹行為的相關(guān)知識(shí)?,F(xiàn)在,我們只需要知道行為屬于服務(wù)的本地特性,例如是否需要基于HTTP-GET交換元數(shù)據(jù),就是一種服務(wù)行為。我們可以通過編程方式或管理方式添加行為。演示的宿主應(yīng)用程序的配置文件中,所有引用了定制<behavior>配置節(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ù)交換,在瀏覽器中就可以通過HTTP基地址(如果存在)進(jìn)行訪問。如果一切正確,就會(huì)獲得一個(gè)確認(rèn)頁面,如圖所示,告知開發(fā)者已經(jīng)成功托管了服務(wù)。確認(rèn)頁面與IIS托管無關(guān),即使使用自托管,我們也可以使用瀏覽器定位服務(wù)地址。
圖:服務(wù)的確認(rèn)頁面