写一个简单的Remoting 服务程序,HelloWorld:)
类函数:
Public Class SimpleObject
Inherits System.MarshalByRefObject
Public Function HelloWorld(ByVal message As String) As String
Return "Hello World" & message
End Function
End Class
Inherits System.MarshalByRefObject
Public 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
Public Shared 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
Imports System.Runtime.Remoting.RemotingConfiguration
Public Class Host
Public Shared 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")
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"))
MsgBox(o.helloworld("asdf"))
上述代码好像无法翻译成C#
3。常规的方式,忽略。。。