为什么我用枚举做远程调用函数的参数不行(在线等待) 是否是类型的原因,试指定类型,public enum MyCommand:byte学习... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 序列化必须从接口定义,就像dataTable不能在WebService中传一样 csdn_bob :试过了,好像不行我用System.Data 命名空间 CommandType 就可以 将远程代码用于本机调试时,出现以下的错误提示:由于安全限制,无法访问DSIMS.MyCommand 如果远程连接调试,则客户端提示:服务器遇到内部错误。有关更多信息,请打开服务器的.config的CustomError。stack Trace 你现在定义的 MyCommand 枚举类型与远程服务器运行的程序集定义的 DSIMS.MyCommand,是一个完全不同的类型。在 Remoting 位于不同程序集的类型,即被认为不同的类型。在进行远程调用方法签名检查时,会认为参数类型不匹配。必须确保:客户端与服务端的相关程序集完全一致。 实在不行,在server / client端分别定义一下,看看可以不。 不能分别定义的。分别定义就意味着不是同一个类型了。Remoting 对类型匹配是有严格要求。如果可以的话,用 Int32 这样的通用框架基类型替代倒是可行的。 AhBian:你讲的有新意,我的服务器端和客户端使用的程序集是相同的,这些类库(程序集)是放在程序运行目录,只是没有通过gac安装成全局程序集 自定义的结构、类(都标有[Serializable]),.net remoting 都因为安全问题不能访问,不知道如何才能解决这个问题,难道.net remoting 用的接口函数参数只能使用框架定义的类型吗? 自定义的类完全可以用。你定义类型不仅仅要让server知道,也要让client知道才行。你把定义的MyCommand在双方都导入 可能会是client与Server端的结构定义不一样的问题,另外想问一下,你用的是.net2003吗? 是2003,我使用的类库都加上了强名,记得原来没有强名的时侯没有这个问题。另外我看了.net remoting的安全性文档,在服务器端注册服务时,如果将provider的TypeFilterLevel 设为 Full的话,就不会出现问题,但这样安全性就会出现问题。现在正检查如何在TypeFilterLevel = Low的情况下能够解决问题,各位大侠也帮帮忙! 结构定义完全一样,都是自己开发的类库,引用一样,问题集中在.net remoting的安全性问题上 你试试吧反序列化级别设成full例子:BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();provider.TypeFilterLevel = TypeFilterLevel.Full;IDictionary props = new Hashtable();props["port"] = 8085;TcpChannel chan = new TcpChannel(props, null, provider); 再等一下,是否有provider.TypeFilterLevel = TypeFilterLevel.Low;能解决问题的 补码笔试题 C#的FORM推出的时候调用的是哪个函数呢?怎么添加到程序里面呢? C#带符号的十六进制整型转换到十进制如何写代码 一段C# 组播代码 求解释! winform的皮肤更换问题? 请教如何获得不只一层的子句柄 动态生成类 如何将程序最小化到任务栏托盘功能? 我写了一个Form的类,我认为很漂亮,有要的吗? 数字如何转成时间格式? 关于combobox 启动同一个应用程序时如何激活已经运行的
我用System.Data 命名空间 CommandType 就可以
由于安全限制,无法访问DSIMS.MyCommand
服务器遇到内部错误。有关更多信息,请打开服务器的.config的CustomError。
stack Trace
你把定义的MyCommand在双方都导入
另外我看了.net remoting的安全性文档,在服务器端注册服务时,如果将provider的TypeFilterLevel 设为 Full的话,就不会出现问题,但这样安全性就会出现问题。
现在正检查如何在TypeFilterLevel = Low的情况下能够解决问题,各位大侠也帮帮忙!
例子:
BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel = TypeFilterLevel.Full;
IDictionary props = new Hashtable();
props["port"] = 8085;
TcpChannel chan = new TcpChannel(props, null, provider);