Silverlight3動態訪問wcf

2021-05-22 06:12:37 字數 1022 閱讀 5254

網路上設定silverlight動態訪問wcf服務,大多是拋開servicereferences.clientconfig檔案,完全以**方式實現對wcf的動態訪問。但這種做法存在實現複雜和侷限性。在實際使用的過程中,出於安全等原因,很多時候需要通過自定義繫結,設定很多內容。通過vs中的嚮導生成silverlight對wcf的訪問,能夠自動識別這些內容,並自動生成servicereferences.clientconfig檔案,簡單地實現對服務的訪問,但手動通過**實現這些繫結,顯然難度比vs嚮導方式大了很多,而且一旦服務的繫結等發生變化,silverlight端**的修改也非常麻煩。

我們知道,wcf服務是通過abc三種要素進行設定的,vs嚮導能自動生成abc三種要素。程式部署到伺服器上,唯一變化的就是a——位址。因此,通過一定的方式,依託自動生成的配置檔案,只是動態地修改a,顯然是最簡單的方式。

程式在開發環境和部署到伺服器上時,主要會面臨兩種情況:

1、silverlight始終以乙個固定的伺服器位址訪問wcf服務,例如,其中乙個服務的位址是http://myservices.com/myservice.svc。

2、伺服器提供公網和區域網兩種訪問方式,wcf服務和承載silverlight的web程式在同乙個站點上,兩者可能在同乙個web程式中,也可能是兩個不同的程式。例如,在區域網中,分別是http://192.168.1.4/myservices/myservice.svc和http://192.168.1.4/webui/aaa.aspx。在公網中,又分別是http://mytest.com/myservices/myservice.svc和http://mytest.com/webui/aaa.aspx。

顯然,兩種情況需要不同的處理方式。為了同時滿足兩種情況,可以使用下面的方式進行處理。

var slservicepath = e.initparams["wcfserviceaddress"];

//如果沒有值,說明為第二種情況,則讀取承載的web程式的位址資訊,以適應公網和區域網兩種情況

2)建立乙個公用的utility類,並在其中增加乙個方法,**如下:

Silverlight3動態訪問wcf 修正版

網路上設定silverlight動態訪問wcf服務,大多是拋開service references.clientconfig檔案,完全以 方式實現對wcf的動態訪問。但這種做法存在實現複雜和侷限性。在實際使用的過程中,出於安全等原因,很多時候需要通過自定義 繫結,設定很多內容。通過vs中的嚮導生成s...

Silverlight 3試用手記

試用環境 wmware 6.5.2,windows xp sp3,512mb記憶體分配,15gb硬碟分配.以上虛機環境安裝完畢後,映象檔案大小是3.44gb.關於記憶體,本人還是建議分配得更大一些,儘管512跑起來也不是很慢.因為silverlight2和3的開發環境無法共存,所以使用虛機環境進行安...

Silverlight3初用手記

之前我還 說,在vs2008下該不支援的還不支援,不過沒想到在sl3更絕。在新建sl3專案的時候,乾脆沒有了設計檢視。不過,在公升級過來的sl3專案中,設計檢視居然還存在,真奇怪。sl3的客戶端經我測試相容sl2的。新建專案的時候多了asp.net mvc方式承載。離線,預設是沒有的,需要勾上乙個屬...