程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> COM(VB/VBA/Script)利用服務標記調用WCF服務之三使用WSDL契約

COM(VB/VBA/Script)利用服務標記調用WCF服務之三使用WSDL契約

編輯:關於.NET

前面我們介紹了使用MEX契約的服務標記在COM中調用WCF服務,這種方式是通過MEX終結點動態取得元 數據,使用起來是比較方便;但是有時服務的元數據中可能包含惡意用戶可以利用的關於應用程序的敏感 信息,也就是說為了安全考慮有些服務可能不會通過MEX公布元數據信息。如果哦某些服務沒有公布元數 據信息,用類型化有比較麻煩,針對這種情況我們該如何在COM中調用WCF服務呢?這時我們可以使用WSDL 契約來進行WCF服務的調用,使用這種方式和使用MEX類似,同樣不需要進行類型的注冊,信息都是通過動 態得到,不過有一個不好的地方就是需要使用其他手段來取得服務的WSDL描述。好了,下面就讓我們開始 第一步:創建WCF服務   這個和上一篇的完全一樣,具體請參見COM(VB/VBA/Script)利用服務標記調用 WCF服務之一使用類型化契約的第一步,如果您曾經按照上一篇文章做過相應的測試,你就可以直接使用 已經建好的服務了。 第二步:在Script中調用WCF服務

1:下面就是創建我們的Script文件了,我們起名為CallWCFService_wsdl.vbs,內容如下:

1'---------------------------------------------------------------
2' WSDL service moniker example
3'---------------------------------------------------------------
4
5 Set xmlhttp=CreateObject("Msxml2.XMLHTTP")
6 call xmlhttp.open("GET","http://localhost/WCFServiceMoniker/Service1.svc?wsdl",false)
7 xmlhttp.send
8 'MsgBox message will be truncated, but wscript.echo will not.
9 'wscript.echo xmlhttp.responseText
10 wsdlstr=xmlhttp.responseText
11
12mexMonikerString = "service:address='http://localhost/WCFServiceMoniker/Service1.svc'"
13mexMonikerString = mexMonikerString + ", wsdl='" & wsdlstr & "'"
14mexMonikerString = mexMonikerString + ", binding=WSHttpBinding_IService1, 

bindingNamespace='http://tempuri.org/'"
15mexMonikerString = mexMonikerString + ", contract=IService1, 

contractNamespace='http://tempuri.org/'"
16
17' Create the service moniker object
18Set mexServiceMoniker = GetObject(mexMonikerString)
19
20' Call the service operations using the moniker object
21WScript.Echo mexServiceMoniker.SayHello("I am LazyBee, My blog is 

http://lazybee.cnblogs.com/ ")
22
23Set mexServiceMoniker = nothing
24Set xmlhttp=nothing
25

注意:在我們服務標記字符串中,包含服務地址、WSDL、綁定及命名空間、服務契約及命名空間四部 分內容。關於如何獲得服務地址、綁定及命名空間、服務契約及命名空間請參見前一篇文章COM (VB/VBA/Script)利用服務標記調用WCF服務之二使用MEX契約的第二步

4 保存之後,直接雙擊運行,你就可以看到運行結果了:

出處:http://lazybee.cnblogs.com

本文配套源碼:http://www.bianceng.net/dotnet/201212/757.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved