讓DomainService暴露在其他客戶端

2021-09-25 02:42:13 字數 2836 閱讀 1929

我們往往在在新建wcf ria service時,通常是再silverlight中新增wcf ria service的,但是微軟說過wcf ria service也是一種特殊的wcf ,wcf 能暴露在其他客戶端,那麼wcf ria service也應能暴露在其他客戶端,列入winform ,wpf等!下面記錄下如何將wcf ria service 暴露到其他客戶端讓winform,wpf呼叫。這裡我以winform呼叫wcf ria sercice為列來說明。

(一)暴露odata端點

1. 關於odata

(1)odata是open data protocol(開放資料協議的縮寫,它是rest-base的web service協議暴露資料通過web services查詢,而且可選擇通過web service驚醒更新操作。你可以在 上研讀相關odata相關資料

(2)odata用的是atom協議編碼從你服務流出或流入的res 訊息中http body部分的資料的。

(3)odata允許你快遞乙個複雜的查詢通過服務位址的url的引數

(4)odata支援部分普通linq查詢操作像filtering(where),投影(select)分頁(take,skip)

(5)除此之外,odata還允許你傳送insert,update,delte

2. 關於wcf ria service與odata

ria service允許你在domain service中只能暴露查詢的odata端點

這個暴露只提供了獲取整個集合的查詢方法,你不能傳遞過濾或分頁操作到到服務通過odata協議

所以功能在此版本的wcf ria service相當的受限,將來的wcf ria services將可能支援更新操作或者更複雜的查詢操作

但是現在你只能呼叫domain service查詢方法和從伺服器上返回沒有過濾的集合到客戶端

3.在新建domain server時,如下圖就行了

4.訂閱暴露odata端點的服務

(1)新增服務時的服務格式為(以我當前的demo為例):http://localhost:5187/wcfriaservicedemo-web-catalogservice.svc/odata,斜槓後面的odata千萬別忘了,如圖:

小結:這種暴露方式雖然很簡單,但操作受限,只能去集合,如果我們只取部分資料,我們需要把整個結合取到,在再客戶端過濾,這種效率很低,且又不能進行更新,刪除、新增操作。所以就有下面的通過暴露soap 端 

(二)暴露soap端

1.關於soap

(1)你在只需要在客戶端新增服務引用,就跟新增wcf service一樣,wcf ria service資料服務的格式為:http://[hostname]/[namespacename]-[classname].svc

public

partial

class form1 : form

);//

新增//

changesetentry changeset = new changesetentry();

//catalog catalog=new catalog();

"add by soap client";

= catalog;

= domainoperation.insert;

changesetentry);

//刪除

//changesetentry changeset = new changesetentry();

= catalogs[4];

= domainoperation.delete;

changesetentry );

//catalog newfetchcatalog = client.getcatalogs().rootresults;

client.close();

}}

(3)安全機制方面,為落實端的安全,你僅僅只需要要再domain service上新增[requiresauthentication]屬性標記符,在客戶你只需要做session或者cookie驗證

(三)暴露rest/json端點

1.只需要在配置檔案中新增如下

<

add

name

="json"

type

="microsoft.servicemodel.domainservices.hosting.jsonendpointfactory, microsoft.servicemodel.domainservices.hosting, version=4.0.0.0, culture=neutral, publickeytoken=31bf3856ad364e35"

/>

2.關於訂閱暴露的json的domainservice,這裡在講解。下面有篇文章總結:雖然問題解決了,但公司vss中的wcf ria service雖然可以新增引用,但不能正確生成,但單獨的可以。這個問題很怪,弄的我狠鬱悶!還得仔細研究!

Different Divisors(數論 暴力)

題目 參考題意 給定乙個數d,求乙個最小的整數a,使得其 1 a至少有4個因子 2 a的任何兩個因子相差大於等於d。思路 任何乙個數,其因子至少有1和它本身。設a剛好有4個因子,有兩種情況,p 3p 3 p3或p q p qp q p,qp,q p,q為素數 可以證明,如果因子數更多,不是最優解。假...

安全架構之Https 讓你的隱私資料不再暴露

一.常見的加密方式 對稱加密和非對稱加密 二.對稱加密演算法 特點 加密和解密的金鑰相同 問題 網路是不安全的,如何實現金鑰的安全傳輸?三.非對稱加密演算法 特點 傳送方和接收方各持有一對鑰匙 公鑰 和私鑰 用公鑰 私鑰 加密的資料只有對用的私鑰 公鑰 才能解密。四.非對稱加密 對稱加密 1 傳送方...

詞彙暴增計畫

猶豫不決的報名了乙個學習英語的計畫,我也不知道具體是怎麼做的,只是聽bill當時說英語會達到乙個很不錯的效果,我的英語確實需要挽救一把了。從明天開始 2017.6.5 到7月15日為期四十天的詞彙暴增計畫就要開始了,也不知道是怎麼一種形式,我是否可以堅持下來?選了任傑 做導師,目前來看,我的選擇是正...