【发布时间】:2011-06-17 08:54:22
【问题描述】:
我有一个客户端应用程序,我在其中收集数据并将其存储在类数据包结构中。我可以将此类的对象发送到我的服务器应用程序吗?..两个应用程序都运行在通过 LAN 网络连接的不同机器上。
在 .Net Remoting 中,Object 在服务器中实例化,而 Objref 与客户端共享。现在我将这个 Packet 类的对象作为远程对象,用作客户端激活的对象。该对象是在客户端激活它时创建的。
public class Packet : MarshalByRefObject {
public int svrnumber;
public string svrname;
[NonSerialized]
public static IObserver Observer;
public void MessageString(object value) {
Observer.Notify(value);
}
public static void Attach(IObserver observer) {
Observer = observer;
}
}
我在客户端引用这个类的Pack(Object)并赋值。
Pack.svrname = "Bob";
Pack.svrnumber = 123456;
sample = (Object)Pack;
将此示例对象传递给 Notify。我通过 Notify 函数在服务器上接收到这个示例对象并将其拆箱以获取我的值。
当我调用函数 MessageString 时,我得到一个异常,因为安全限制 Objref 不可访问!!
还告诉我是否有任何其他方法可以解决这个问题。或者我应该使用 SocketProgramming 方法将我的所有类值转换为字节,然后发送到服务器,然后重新分配它们。
谢谢。
【问题讨论】:
标签: .net remoting tcp securityexception