客户端调用第三方remoting 服务程序的n中方式,VB.NET 晚期邦定还真方便

写一个简单的Remoting 服务程序,HelloWorld:)

类函数:

Public Class SimpleObject Class SimpleObject
Inherits System.MarshalByRefObject

Public Function HelloWorld() Function HelloWorld( ByVal message As String ) As String
Return " Hello World " & message
End Function

End Class

host 程序代码

Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.RemotingConfiguration
Public Class Host Class Host
Public Shared Sub Main() Sub Main()
Dim channel As New Http.HttpServerChannel( 6363 )
ChannelServices.RegisterChannel(channel)
RegisterWellKnownServiceType( GetType (ObjectLib.SimpleObject), " simpleobject " , Runtime.Remoting.WellKnownObjectMode.SingleCall)
Console. WriteLine ( " started ok " )
Console.ReadLine()
End Sub
End Class

下面讨论几种调用方式

1.可客户端不支持或者没有安装.NET Framework 的情况。

本质上remoting 服务端和客户端走的是Soap协议,对于简单的方法。只要客户端能支持Soap就可以了。微软提供了一个soaptoolkit ,比如在vb6 中调用我的remoting 服务。

Dim o As New SoapClient30
o.MSSoapInit " http://Server:6363/simpleobject?wsdl"
MsgBox o.HelloWorld( " montaque " )

2. 在vb.net 中调用remoting 服务。通过bindingtomoniker

Dim o As Object = System.Runtime.InteropServices.Marshal.BindToMoniker( " soap:wsdl=http://localhost:6363/simpleobject?wsdl " )
MsgBox (o.helloworld( " asdf " ))

当然要设置option explicit off

上述代码好像无法翻译成C#

3。常规的方式,忽略。。。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus