是否是类型的原因,试指定类型,public enum MyCommand:byte学习...

解决方案 »

  1.   

    序列化必须从接口定义,就像dataTable不能在WebService中传一样
      

  2.   

    csdn_bob :试过了,好像不行
    我用System.Data 命名空间 CommandType 就可以
      

  3.   

    将远程代码用于本机调试时,出现以下的错误提示:
    由于安全限制,无法访问DSIMS.MyCommand
      

  4.   

    如果远程连接调试,则客户端提示:
    服务器遇到内部错误。有关更多信息,请打开服务器的.config的CustomError。
    stack Trace
      

  5.   

    你现在定义的 MyCommand 枚举类型与远程服务器运行的程序集定义的 DSIMS.MyCommand,是一个完全不同的类型。在 Remoting 位于不同程序集的类型,即被认为不同的类型。在进行远程调用方法签名检查时,会认为参数类型不匹配。必须确保:客户端与服务端的相关程序集完全一致。
      

  6.   

    实在不行,在server / client端分别定义一下,看看可以不。
      

  7.   

    不能分别定义的。分别定义就意味着不是同一个类型了。Remoting 对类型匹配是有严格要求。如果可以的话,用 Int32 这样的通用框架基类型替代倒是可行的。
      

  8.   

    AhBian:你讲的有新意,我的服务器端和客户端使用的程序集是相同的,这些类库(程序集)是放在程序运行目录,只是没有通过gac安装成全局程序集
      

  9.   

    自定义的结构、类(都标有[Serializable]),.net remoting 都因为安全问题不能访问,不知道如何才能解决这个问题,难道.net remoting 用的接口函数参数只能使用框架定义的类型吗?
      

  10.   

    自定义的类完全可以用。你定义类型不仅仅要让server知道,也要让client知道才行。
    你把定义的MyCommand在双方都导入
      

  11.   

    可能会是client与Server端的结构定义不一样的问题,另外想问一下,你用的是.net2003吗?
      

  12.   

    是2003,我使用的类库都加上了强名,记得原来没有强名的时侯没有这个问题。
    另外我看了.net remoting的安全性文档,在服务器端注册服务时,如果将provider的TypeFilterLevel 设为 Full的话,就不会出现问题,但这样安全性就会出现问题。
    现在正检查如何在TypeFilterLevel = Low的情况下能够解决问题,各位大侠也帮帮忙!
      

  13.   

    结构定义完全一样,都是自己开发的类库,引用一样,问题集中在.net remoting的安全性问题上
      

  14.   

    你试试吧反序列化级别设成full
    例子:
    BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
    provider.TypeFilterLevel = TypeFilterLevel.Full;
    IDictionary props = new Hashtable();
    props["port"] = 8085;
    TcpChannel chan = new TcpChannel(props, null, provider);
      

  15.   

    再等一下,是否有provider.TypeFilterLevel = TypeFilterLevel.Low;能解决问题的