为什么我用枚举做远程调用函数的参数不行(在线等待)

wangweilie 2003-09-12 04:34:34
我的枚举是这样定义的
[Serializable]
public enum MyCommand
{
com1,
com2
};

我的.net remoting 对象的一个函数是这样的
public DataSet GetChildCascadeData( MyCommand NT )

但是调用总是发生错误,连函数的门都没能进就出错,可是我换成.net Framework中的枚举就没有问题

请各位高手出手相救,谢谢!
...全文
165 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangweilie 2003-09-18
  • 打赏
  • 举报
回复
再等一下,是否有provider.TypeFilterLevel = TypeFilterLevel.Low;能解决问题的
colin666 2003-09-17
  • 打赏
  • 举报
回复
可能会是client与Server端的结构定义不一样的问题,另外想问一下,你用的是.net2003吗?
i_am_a_frog 2003-09-17
  • 打赏
  • 举报
回复
自定义的类完全可以用。你定义类型不仅仅要让server知道,也要让client知道才行。
你把定义的MyCommand在双方都导入
wangweilie 2003-09-17
  • 打赏
  • 举报
回复
自定义的结构、类(都标有[Serializable]),.net remoting 都因为安全问题不能访问,不知道如何才能解决这个问题,难道.net remoting 用的接口函数参数只能使用框架定义的类型吗?
beta4 2003-09-17
  • 打赏
  • 举报
回复
用楼上的方法可以,试过
i_am_a_frog 2003-09-17
  • 打赏
  • 举报
回复
你试试吧反序列化级别设成full
例子:
BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel = TypeFilterLevel.Full;
IDictionary props = new Hashtable();
props["port"] = 8085;
TcpChannel chan = new TcpChannel(props, null, provider);

wangweilie 2003-09-17
  • 打赏
  • 举报
回复
结构定义完全一样,都是自己开发的类库,引用一样,问题集中在.net remoting的安全性问题上
wangweilie 2003-09-17
  • 打赏
  • 举报
回复
是2003,我使用的类库都加上了强名,记得原来没有强名的时侯没有这个问题。
另外我看了.net remoting的安全性文档,在服务器端注册服务时,如果将provider的TypeFilterLevel 设为 Full的话,就不会出现问题,但这样安全性就会出现问题。
现在正检查如何在TypeFilterLevel = Low的情况下能够解决问题,各位大侠也帮帮忙!
beta4 2003-09-16
  • 打赏
  • 举报
回复
continue gz up
wangweilie 2003-09-15
  • 打赏
  • 举报
回复
up
wangweilie 2003-09-15
  • 打赏
  • 举报
回复
up again
wangweilie 2003-09-14
  • 打赏
  • 举报
回复
AhBian:你讲的有新意,我的服务器端和客户端使用的程序集是相同的,这些类库(程序集)是放在程序运行目录,只是没有通过gac安装成全局程序集
AhBian 2003-09-13
  • 打赏
  • 举报
回复
不能分别定义的。分别定义就意味着不是同一个类型了。Remoting 对类型匹配是有严格要求。

如果可以的话,用 Int32 这样的通用框架基类型替代倒是可行的。
xz_king 2003-09-13
  • 打赏
  • 举报
回复
实在不行,在server / client端分别定义一下,看看可以不。
AhBian 2003-09-13
  • 打赏
  • 举报
回复
你现在定义的 MyCommand 枚举类型与远程服务器运行的程序集定义的 DSIMS.MyCommand,是一个完全不同的类型。

在 Remoting 位于不同程序集的类型,即被认为不同的类型。在进行远程调用方法签名检查时,会认为参数类型不匹配。

必须确保:客户端与服务端的相关程序集完全一致。
wangweilie 2003-09-13
  • 打赏
  • 举报
回复
upup
beta4 2003-09-12
  • 打赏
  • 举报
回复
gz
wangweilie 2003-09-12
  • 打赏
  • 举报
回复
up
wangweilie 2003-09-12
  • 打赏
  • 举报
回复
如果远程连接调试,则客户端提示:
服务器遇到内部错误。有关更多信息,请打开服务器的.config的CustomError。
stack Trace
wangweilie 2003-09-12
  • 打赏
  • 举报
回复
将远程代码用于本机调试时,出现以下的错误提示:
由于安全限制,无法访问DSIMS.MyCommand
加载更多回复(7)

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧