关于远程对象租约的问题

pupo 2005-07-01 03:39:44
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 Function

End Class

'远程对象
Public Class Server
Inherits MarshalByRefObject
Implements System.Runtime.Remoting.Services.ITrackingHandler

Public 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 Function

End Class

Public 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 Sub

End Class

这是我写的几个远程对象的类,大概的写了出来,意思是客户端注册后获得一个CUserStub的远程对象引用,然后定时器关联ReLease方法定时续订租约,远程对象是部署在IIS中,本机测试都通过,但是将远程对象部署到internet服务器时执行ReLease方法的时候就会报基础连接已经关闭的错误,不知道为什么



...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
The123 2005-07-02
  • 打赏
  • 举报
回复
aspnet_regiis -i 重新在server上注册到iis上
zhongwanli 2005-07-01
  • 打赏
  • 举报
回复
Mark
pupo 2005-07-01
  • 打赏
  • 举报
回复
默认的两分钟
The123 2005-07-01
  • 打赏
  • 举报
回复
internet服务器上的iis连接超时时间是多少?

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧