我在类的构造函数中加了一个MessageBox,在服务器端会显示两遍
解决方案 »
- 郁闷,怎么回事
- 求助:c#调用c++的dll时,数据类型对应的问题
- c#如何操作摄像头生成实时图片
- 请高手看下我写的数组代码有什么问题
- 我想请问下这种链接页面要怎么弄?
- 只想用this.Button1.Attributes.Add的方式实现一个超链接的基本功能
- [各位星星]汉化程序的问题!- 分不够另加
- 我要做一个DropDownList的控件,可以向里输入内容,问了三天了。这个问题应该不难吧!高手们求求你们了
- 怎样在WebMethod中使用自定义的机构或者类????????????????????????
- .net在循环插入前怎么判断数据库中是否存在相同的记录?
- 请问int i=0;与int i= new int();创建的i有什么区别,另外还有。。。。拜托了!
- 要做COM+ Role-Based Security,ADSI操作,做过的讲两句!
由于Remoting采用的是Lazy Object Activation,只有到了Client第一次请求调用对象方法的时候Server才实际创建对象。所以第一次的Remoting调用可以分为两部分:
1) Client向Server请求对象的描述ObjRef,并且生成相关的PRoxy(RealProxy和TransparentProxy)。
2) 通过Proxy实际调用远程对象的方法。而对Server来说,在第一次请求的时候才实际的创建一个ObjRef,并返回给Client,查查MSDN就可以知道,要创建一个ObjRef的唯一方法是先创建一个Remote Object(从MarshalByRefObject继承),然后通过RemotingServices.Marshal()方法创建ObjRef。由于SingleCall,所以在第二次通信的时候Server有会建立一个新的Remote Object来完成Client的请求,所以一共就有两个对象的创建过程了。
实际上第一个对象对SingleCall类型应该是临时的,但Server确Hold了一个Reference,导致这个对象只有在注销Remote Object的时候才会被清除。这一点可以用Finalize方法检查。