在线等,关于远程对象
本人在服务器端注册了客户端激活类型:
remotingconfig.registactivatedservicetype(typeof(myRemotingClass));
然后我想注销它,使客户端不能激活,有什么办法。当然一个办法是:
remotingservice.disconnect(myRemotingClass));还有别的主意吗?
还有我如何在服务端的到客户端激活的远程对象,以便我主动销毁。
问题点数:20、回复次数:16Top
1 楼funnyrain()回复于 2004-08-04 18:01:09 得分 0
怎么还没人回贴啊,我没说明白吗?Top
2 楼yly19730201(我是谁)回复于 2004-08-04 18:19:22 得分 0
帮你顶顶Top
3 楼rivercoming(流云)回复于 2004-08-04 19:31:09 得分 0
remoting都是用到的时候查书而已,不熟,帮顶!Top
4 楼funnyrain()回复于 2004-08-04 19:54:01 得分 0
有人知道吗???急!!!!Top
5 楼lzyang(梁祝)回复于 2004-08-04 20:40:07 得分 0
remoting 不熟,帮你顶Top
6 楼qqchen79(知秋一叶)回复于 2004-08-04 23:42:30 得分 20
看下面的帖子:
http://community.csdn.net/Expert/topic/3221/3221261.xml?temp=.7634088Top
7 楼funnyrain()回复于 2004-08-05 17:25:25 得分 0
感谢QQCHE79启发大大的。
另有问题:时间租借机制是否一样用于你文章中由工厂创建的对象?Top
8 楼funnyrain()回复于 2004-08-05 17:43:40 得分 0
singlecall模式的远程对象不用时间租借机制,SINGLETON和客户激活要用时间租借机制?
服务端用REMOTINGSERVICES。MARSHAL(REMOTEOBJECT)公布的远程对象是否类似于SINGALTON
对象。是否也要用时间机制。
你文章中工厂创建的远程对象如果用时间租借机制,那么是否是因为通过信道被反回了客户
端的缘故,否则只创建不返回,那该对象将到期被回收?Top
9 楼funnyrain()回复于 2004-08-05 18:11:45 得分 0
SINGLECALL模式的远程对象是否在调用对象方法后被服务端内存管理回收,但不一定立即销毁?
由于要在服务端管理创建的远程对象,必然我要有对他们的引用,租借时间到后,能否被回收?或者使远程对象实现IDISPOSE接口,手动调用对象的DISPOSE,是否能被内存管理回收并
销毁。Top
10 楼qqchen79(知秋一叶)回复于 2004-08-05 23:49:22 得分 0
>> 时间租借机制是否一样用于你文章中由工厂创建的对象?
没错。所有的Remoting对象都受租借机制约束。
>> singlecall模式的远程对象不用时间租借机制,SINGLETON和客户激活要用时间租借机制?
模拟Singlecall其实根本不用MarshalByRef对象,每次用FactoryClass建立一个local对象,调用,然后销毁就行了。
>> 你文章中工厂创建的远程对象如果用时间租借机制,那么是否是因为通过信道被反回了客户端的缘故,否则只创建不返回,那该对象将到期被回收?
返回一个MarshalByRef对象到Client会导致.NET Remoting保留对象饮用,所以GC不起作用。只收到租借周期的限制。
简单的说,租期以内对象受Remoting控制,之后会被GC回收。
Top
11 楼funnyrain()回复于 2004-08-06 14:11:52 得分 0
昨天看了你的文章后回去做了些实验,感觉.net提供的几种服务端远程对象注册方式只是做了
些封装后的不同表现。就象你文中提到的。其机制就象你文中的工厂类。现看见你的回答应证
了,心中大快,再次特别感谢。
再有我用了TRACESERVICE 跟踪服务。服务端MARSHAL个对象后,时间到后会自动调用DISCONNECT事件,并被GC回收。
可如果我用SERVICES。DISCONNET(REMOTEOBJ),并把REMOTEOBJ = NULL,也等到时间到期,
可却没被GC,还有哪在引用???
在线等。。。。
Top
12 楼funnyrain()回复于 2004-08-06 14:21:09 得分 0
。NET 中 REMOTING 是如何检测到对象到期并消除引用的?我能调用相应的功能不?Top
13 楼funnyrain()回复于 2004-08-06 14:23:12 得分 0
还有你的上文出来了吗?没的话,可否在这公布下。Top
14 楼qqchen79(知秋一叶)回复于 2004-08-09 00:22:50 得分 0
http://dev.csdn.net/develop/article/14/article/14/14124.shtm
http://dev.csdn.net/develop/article/14/article/14/article/14/14110.shtmTop
15 楼funnyrain()回复于 2004-08-10 17:37:55 得分 0
再有我用了TRACESERVICE 跟踪服务。服务端MARSHAL个对象后,时间到后会自动调用DISCONNECT事件,并被GC回收。
可如果我用SERVICES。DISCONNET(REMOTEOBJ),并把REMOTEOBJ = NULL,也等到时间到期,
可却没被GC,还有哪在引用???
这个问题有误,实际上我在代码里有一处引用,我忘了取消。
如何能访问到租约管理器,不是租约。
Top
16 楼qqchen79(知秋一叶)回复于 2004-08-14 05:37:15 得分 0
>> 如何能访问到租约管理器,不是租约。
LeaseManager是一个internal class, 你拿不到:
namespace System.Runtime.Remoting.Lifetime {
internal class LeaseManager
...
}Top




