windows服务与Remoting对象交互问题

lion20 2006-10-22 11:00:34
现欲实现以下功能,实现一缓存,用户调用remoting对象的时候,都可以从该缓存中取到数据,同时也有远程方法可以设置该缓存的值。该缓存状态是一直存在的。

具体设想如下:在windows服务中加载remoting对象,该对象中有一全局变量,租约期设为无限。现希望可以在服务中,每隔一段时间就更新该全局变量的值,该如何实现这个功能,请指教!


代码如下:

定时器服务代码:
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//调用 设置remoting对象的更新变量的方法(如何实现?)调用GetStr111()这个方法。
}


remoting对象代码:

public class RemotingExampleService : MarshalByRefObject, IRemotingExampleService
{
protected int i = 0; //全局缓存

public string GetStr()
{
return (i++).ToString();
}

//重新设置全局变量的方法
public string GetStr111()
{
i = 1;
return i.ToString();
}
}
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aafshzj 2006-10-23
  • 打赏
  • 举报
回复
我倾向于缓存同步。既可以保持很好的分布式特性,还可以保持很好的性能。

我的AAF架构就是采用这种缓存同步技术的。可以到我的blog看看。
lion20 2006-10-23
  • 打赏
  • 举报
回复
给分啦,谢谢2位,顺便请教下 aafshzj(上海北京) ,那用什么来管理缓存比较好呢?
aafshzj 2006-10-23
  • 打赏
  • 举报
回复
其实就是在windows服务中创建一个可供远程访问的对象嘛,和在一般进程中启动一个对象没什么区别啊。只是你的远程对象应该是缓存管理对象,而不是缓存对象。至于你的缓存对象倒未必是远程对象,支持序列化就可以了。

题外话:用remoting来管理缓存不一定是好的选择。
俞庆平 2006-10-23
  • 打赏
  • 举报
回复
方法一:提供一个静态方法操作成员,服务操作该类的静态方法
方法二:使用远程调用
方法三:本地创建该RemotingExampleService实例,并调用方法
lion20 2006-10-22
  • 打赏
  • 举报
回复
想出个方法,在windonws服务里象客户端一样调用远程对象,就解决了这个问题~~
但不知道有没有更加好的方法呢?

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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