Public Class CUserStub
Inherits MarshalByRefObject Public User As String
Public Sub New(ByVal user As String)
Me.User = user
End Sub Public Overrides Function ToString() As String
Return Me.User
End Function Public Overrides Function InitializeLifetimeService() As Object
Dim lease As ILease = CType(MyBase.InitializeLifetimeService(), ILease)
If lease.CurrentState = LeaseState.Initial Then
lease.InitialLeaseTime = TimeSpan.FromMinutes(1)
lease.SponsorshipTimeout = TimeSpan.FromSeconds(10)
lease.RenewOnCallTime = TimeSpan.FromSeconds(20)
End If
Return lease
End FunctionEnd Class'远程对象
Public Class Server
Inherits MarshalByRefObject
Implements System.Runtime.Remoting.Services.ITrackingHandlerPublic Function RegisterOnline(ByVal userId As String) As CUserStub
Dim stub As CUserStub
stub = New CUserStub(userId)
System.Runtime.Remoting.RemotingServices.Marshal(stub) Return stub
End FunctionEnd ClassPublic Class Client Dim stub As CUserStub stub = myServer.RegisterOnline(Me.userId) Private Sub ReLease(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
Dim lease As System.Runtime.Remoting.Lifetime.ILease = CType(RemotingServices.GetLifetimeService(stub), System.Runtime.Remoting.Lifetime.ILease)
lease.Renew(System.TimeSpan.FromSeconds(20))
End SubEnd Class这是我写的几个远程对象的类,大概的写了出来,意思是客户端注册后获得一个CUserStub的远程对象引用,然后定时器关联ReLease方法定时续订租约,远程对象是部署在IIS中,本机测试都通过,但是将远程对象部署到internet服务器时执行ReLease方法的时候就会报基础连接已经关闭的错误,不知道为什么
Inherits MarshalByRefObject Public User As String
Public Sub New(ByVal user As String)
Me.User = user
End Sub Public Overrides Function ToString() As String
Return Me.User
End Function Public Overrides Function InitializeLifetimeService() As Object
Dim lease As ILease = CType(MyBase.InitializeLifetimeService(), ILease)
If lease.CurrentState = LeaseState.Initial Then
lease.InitialLeaseTime = TimeSpan.FromMinutes(1)
lease.SponsorshipTimeout = TimeSpan.FromSeconds(10)
lease.RenewOnCallTime = TimeSpan.FromSeconds(20)
End If
Return lease
End FunctionEnd Class'远程对象
Public Class Server
Inherits MarshalByRefObject
Implements System.Runtime.Remoting.Services.ITrackingHandlerPublic Function RegisterOnline(ByVal userId As String) As CUserStub
Dim stub As CUserStub
stub = New CUserStub(userId)
System.Runtime.Remoting.RemotingServices.Marshal(stub) Return stub
End FunctionEnd ClassPublic Class Client Dim stub As CUserStub stub = myServer.RegisterOnline(Me.userId) Private Sub ReLease(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
Dim lease As System.Runtime.Remoting.Lifetime.ILease = CType(RemotingServices.GetLifetimeService(stub), System.Runtime.Remoting.Lifetime.ILease)
lease.Renew(System.TimeSpan.FromSeconds(20))
End SubEnd Class这是我写的几个远程对象的类,大概的写了出来,意思是客户端注册后获得一个CUserStub的远程对象引用,然后定时器关联ReLease方法定时续订租约,远程对象是部署在IIS中,本机测试都通过,但是将远程对象部署到internet服务器时执行ReLease方法的时候就会报基础连接已经关闭的错误,不知道为什么
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货