我的remoting服务器端对象简化如下:
class RemoteServer:MarshalByRefObject
{
private bool isRunning = false;
private ArrayList alSomething = new ArrayList();
private Thread taskThread;

public RemoteServer()
{
// ... 一些初化操作,如创建线程
}
public void StartService()
{
isRunning = true;
}
private void interProcess()
{
while(this.isRunning)
{
// ... 操作alSomething
}
}
}
注册代码是:
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemoteServer),
"RemoteServer",
WellKnownObjectMode.Singleton);现在遇到的问题是:
客户端在大约5分钟后超时了,再次连接并调用RemoteServer的方法时,返回信息不正确,跟踪发现这时的RemoteServer又被创建了一次,即RemoteServer有两个实例存在了,新创建的这个状态都是初始的,alSomething.Count为0,isRunning等于false,原来那个循环仍在进行,实例的各项状态是正确的。这是怎么回事?为何会出现RemoteServer再次被创建的情况?