[C#]租约的Renew和“在主机应用程序域运行时始终”将对象保存在内存中
我是看了:
http://cnblogs.com/xenogear/archive/2004/07/19/25609.aspx
他采用的办法是“在ShowDialog之前,得到租约,然后把这个租约传到FormLogin中,在FormLogin加一个Timer,检测到快超时的时候,就Renew租约”。
我的做法:
我呢,参考的是《.NET Remoting 体系结构评估 》上讲的一段话:
public class HostRequest : MarshalByRefObject
{
///
/// 忽略默认的对象租用行为,以便“在主机应用程序域运行时始终”将对象保存在内存中.
/// 这种机制将对象锁定到内存中,防止对象被回收,但只能在主机应用程序运行
/// 期间做到这样。
///
///
public override Object InitializeLifetimeService()
{
return null;
}
/// HostRequest 连接指定的页面,并将结果返回为stream输出参数。
/// 如果我们保留状态,无论是服务器激活的 Singleton 还是客户端激活的对象,
/// 我们可能都要参与生存期管理进程:对象租用。我们已经看到很小程度的参与,
/// 使用了一种简单(且有用)的方法,就是忽略 InitializeLifetimeService 方法。
如果不忽略 InitializeLifetimeService 方法:
如果不这么做的话,服务一开始用
m_Host = (HostRequest)ApplicationHost.CreateApplicationHost(
typeof(HostRequest),
"/ActionServletRedirect",
m_strPhysicalDir);
创建出了我自己的ApplicationHost,但是隔一段时间,比如2分钟,再次调用m_Host.CreateHtmlPage时发生异常,异常描述为:“Object </af81700d_4ca5_4ea5_b715_692a78a32f6f/ShTqv7YyYlWLUSZjIFfVzPjB_5.rem> has been disconnected or does not exist at the server.”。
堆栈信息如下:
excStack "\nServer stack trace: \n at System.Runtime.Remoting.Channels.ChannelServices.CheckDisconnectedOrCreateWellKnownObject(IMessage msg)\r\n at System.Runtime.Remoting.Channels.ChannelServices.SyncDispatchMessage(IMessage msg)\n\nException rethrown at [0]: \n at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)\r\n at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)\r\n at ActionServlet.HostRequest.CreateHtmlPage(String webPage, String query, TextWriter stream) in E:\\UM_BeijingMobile\\Coding\\PetGarden\\ActionServlet\\ActionServlet\\HostRequest.cs:line 18\r\n at ActionServlet.RedirectingCommand.Execute(SMSUpContext context) in e:\\um_beijingmobile\\coding\\petgarden\\actionservlet\\actionservlet\\redirectingcommand.cs:line 79" string
相关推荐
C# 通过API接口来实现DHCP重新获取地址(获取成功后显示获取到的地址信息)和释放地址
这大大简化了网络管理和维护工作。4. **DHCP重新获取**:当设备想要更新其DHCP租约时,会发送一个DHCP请求(DHCP Renew)到DHCP服务器。
Microsoft .Net Remoting系列教程之二:Marshal、Disconnect与生命周期以及跟踪服务
**租约管理器**:每个应用程序域都会引入一个租约管理器来管理每个服务器端的SingleTon或每个客户端激活的远程对象。
DHCP小型服务器
**租约更新**:IP地址的使用是有时间限制的,称为租期。当租期即将到期时,设备会尝试续租,通过发送DHCP Renew或DHCP Rebind请求来保持网络连接。使用DHCP小型服务器的优势:1.
思科CCNA综合实验指南[代码]
路由协议采用双域分区策略:私网区域(R1、R2、R3之间)运行OSPF进程1,宣告所有内网直连网段,设置Router ID并启用区域0骨干域;公网区域(R0与R1之间)运行RIPv2,关闭自动汇总并启用版本
【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营04
典型值:λ1∈[−0.02,−0.01], λ2∈[−0.01,0], η1,η3∈[0.1,0.3], η2,η4∈[0.05,0.15]参数:δ1∈[−0.8,−0.3], δ2∈[−0.5,−0.2], δ3∈[−0.4,−0.1], δ4∈[−0.6,−0.2]参数:φ1∈[0.1,0.3], φ2∈[−0.2,−0.05], φ3∈[−0.1,0.1], φ4∈[−0.3,−0.1]参数:α∈[0.3,0.6], β∈[0.2,0.4], γ∈[0.01,0.03]


