發表文章

目前顯示的是 12月, 2010的文章

Silverlight果然還是無法存取.NET Remoting

圖片
會有這個問題是因為先前有需要,也希望在Silvelight中看看能否存取.NET Remoting的遠端物件,不過當然,在當下每個人都知道Silverlight目前只支援3種資料存取方式: RIA Service WCF Data Service (之前稱為ADO.NET Data Service) WCF Service 不過筆者還是想要Try一下,當有一些不確定因素時筆者就是喜歡踹(是Try拉),行不行Try一下就知道,Try的過程當中也會有一些發現或是了解其原理,二話不說開始吧! 首先筆者記得.NET 3.0之後,因為新增了WCF,所以在Visual Studio 的IDE之中除了原先的加入 [加入參考] [加入Web參考] 之外,還多了 [加入服務參考],這是為了WCF服務而出現的,所以之後,像您現在如果使用如目前最新的visual Studio 2010的WinForm程式在加入服務參考的視窗下面還會有一個 [進階]按鈕,如下圖: 點選後,如下畫面: 畫面中還有一個加入Web參考的按鈕,在說明的地方也特別標註說這是相容於.NET Framework 2.0的。點選之後就是以前熟悉的Web 參考畫面如下: 而在Silverlight的專案中的[加入服務參考]的畫面中也沒有[加入Web參考]的按鈕,如下: 如果硬是在[加入服務參考]的地方輸入.NET Remoting公開的URL (Web Service/SOAP公開的方式),突然很高興的發現!!可以找的到一個服務ㄝ,還能夠分析的出有一個HelloWorldService,如下圖: 不過按下[確定]後馬上得到一個錯誤訊息,但該錯誤也不是回應出真正的錯誤內容,不過無法作業也是可以想見的!之後說明。 而且所產生出來的Reference.c參考檔案也是空空如也,什麼都沒有!如下畫面: 為什麼後來筆者有想到原因了呢?因為當您手動敲入Remoting的Proxy也就是遠端物件時,因為該物件必須繼承 System.Web.Services.Protocols.SoapHttpClientProtocol, 這本來在參考的畫面就應該要看出來了, 但是因為當初Silverlight為了使下載下來的Plug-In安裝檔盡量愈小愈好,所以是沒有包入System.Web.S