博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VB6调用WebService、WCF

Posted on 2011-01-31 00:39  ☆Keep★Moving☆  阅读(5270)  评论(3编辑  收藏  举报
'调用webservice。需要安装SoapToolkit30.EXE,并在工程中引用Microsoft Soap Type Library v3.0

Sub CallWebService()

Dim m_spClient As New SoapClient30 'SoapClient30对象实例化

m_spClient.MSSoapInit
"http://localhost/MCISWebService/vbtest.asmx?WSDL" '引用webservice

MsgBox m_spClient.HelloWorld '调用webservice方法

End Sub





'http方式调用WCF

Sub CallHTTPWCFService()

Dim mexMonikerString As String
Dim mexServiceMoniker As Object
'---------------------------------------------------------------
' MEX service moniker example
'---------------------------------------------------------------
' Create a string for the service moniker specifying the address
' to retrieve the service metadata from
mexMonikerString = "service:mexAddress='http://localhost:55242/Service1.svc/mex'"
mexMonikerString
= mexMonikerString + ", address='http://localhost:55242/Service1.svc'"
mexMonikerString
= mexMonikerString + ", binding=WSHttpBinding_IService1, bindingNamespace='http://tempuri.org/'"
mexMonikerString
= mexMonikerString + ", contract=IService1, contractNamespace='http://tempuri.org/'"
' Create the service moniker object
Set mexServiceMoniker = GetObject(mexMonikerString)

' Call the service operations using the moniker object
MsgBox mexServiceMoniker.SayHello("China!")


Set mexServiceMoniker = Nothing
End Sub



'TCP方式调用WCF

Sub CallTCPWCFService()

Dim mexMonikerString As String

Dim mexServiceMoniker As Object

' Create a string for the service moniker specifying the address

' to retrieve the service metadata from

mexMonikerString
= "service:mexAddress='http://192.168.1.110:12345/Binding/mex'"

mexMonikerString
= mexMonikerString + ", address='net.tcp://192.168.1.110:54321/Binding/Hello'"

mexMonikerString
= mexMonikerString + ", binding='NetTcpBinding_IHello', bindingNamespace='http://tempuri.org/'"

mexMonikerString
= mexMonikerString + ", contract=IHello, contractNamespace='http://tempuri.org/'"

' Create the service moniker object

Set mexServiceMoniker = GetObject(mexMonikerString)

' Call the service operations using the moniker object

MsgBox mexServiceMoniker.SayHello("China!")

Set mexServiceMoniker = Nothing

End Sub

 

 

 

 '当调用WCF 时候,要注意一些事项.由于WCF对外公布的都是接口,如果WCF里定义了多个接口,VB6.0如果没对全部实现的话是会报错的.我仲未知点解决...WCF定义返回的是Class类,VB6.0那接收时也会出错.

Jason個邊抄過來的調用WCF

VB6.0 Call WCF

Sub CallWCFService_TypedContract()
  
  Dim strMonikerString As String
  Dim serviceMoniker As Object
  
  '---------------------------------------------------------------
  ' Typed Contract service moniker example
  '---------------------------------------------------------------
  ' Create a service moniker object using a strongly typed contract
  ' This references the address, a standard binding type and the
  ' locally registered COM-visible contract ID
  
  monikerString = "service:address='http://localhost/WCFServiceMoniker/Service1.svc'"
  monikerString = monikerString + ", binding=wsHttpBinding"
  monikerString = monikerString + ", contract={4FBDA94E-8B89-32EC-BC28-2A0A5E9B7C74}"
  
  ' Create the service moniker object
  Set serviceMoniker = GetObject(monikerString)
  
  ' Call the service operations using the moniker object
  MsgBox serviceMoniker.SayHello("I am LazyBee, My blog is http://lazybee.cnblogs.com/ ")
  
  Set serviceMoniker = Nothing
End Sub