目前我有个三层架构的系统,但我打算用remoting来把客户端分出去,我把业务层的方法注册在通道上,但远程调用的时候,在数据访问层中会出现
未将对象引用设置到对象的实例这种错误,我该怎么解决呢?
希望大侠赐教,谢谢

解决方案 »

  1.   

    未将对象引用设置到对象的实例这种错误具体点好吗?没看明白,一般出现这样的错误是因为,服务器端或者客户端返回或者获得的对象,是不存在于其本身的,也就是说,得到的其实是一个object,而这个object是在其对应工程中,不能被解释的。
    有两种方式解决,一,最简单,将此对象的实例dll,添加到获取方的引用中,二,使用反射,进行操作。不过,我还是不知道你为什么会这样,请详细!
      

  2.   

    那就是没有实例化 没有new内存区域出来
      

  3.   

    是不是
    注册的
    objecturl
    应用服务器,和可户端的配置不一致
      

  4.   

    未将对象引用设置到对象的实例,这是因为你引用了空对象,不一定是使用Remoting造成的,你可以设置一个断点,一步步执行,看执行到哪个地方出现此错误,Remoting调试很方便的,客户端和服务器可以放在一个solution里面,两边都可以设置断点
      

  5.   

    1.具体是这样的!我在服务端注册了个 public void Login(UserInfo userinfo)
    2.而这个方法又调用了一些数据访问成的方法如 Select(UserInfo userinfo)//对数据库进行查询
    3.再而他又调用了DBHelper中的具体操作方法db.executeNoQuary()
    在第1.2步的时候,因为用的是客户端传回的userinfo参数引用,所以没有问题
    但在第3步没有用到userinfo了,就出现了“未将对象引用设置到对象的实例这种错误”
      

  6.   

    不好说,自己debug一下就有了,client和server一起debug
      

  7.   

    你的USERINFO  在server有定义吗?和客户端定义一致吗?
      

  8.   

    UserInfo是实体类,在客户端和服务端都引用,去掉参数可以,加上这个参数就有问题了
      

  9.   

    你可以在服务端下断点 检查USERINFO对象的值. 我估计是他在传递的时候有丢失
      

  10.   


    客户端调用的时候UserInfo是否new了?
    不过这不一定是UserInfo造成的,感觉楼主把太多精力集中在UserInfo了,也许db是null呢,没有实际环境大家还是无能为力
    我还是建议楼主在Login的第一行代码设置断点,单步执行,看哪个对象是null,如果不能设置断点就打印每个对象的值,或使用对象前加if(object == null){MessageBox("object is null");}