// IRemoteServer.Disconnect
 public void Disconnect(IRemoteServerSession session)
 {
     BeginCall();
     try
     {
         RemoteServerSession localSession = session as RemoteServerSession;
         if (session != null)
         {
             localSession.Dispose();
         }
     }
     finally
     {
         EndCall();
     }
 }
 internal void CloseSessions()
 {
     if (_sessions != null)
     {
         while (_sessions.Count > 0)
         {
             RemoteServerSession session = (RemoteServerSession)_sessions.DisownAt(0);
             try
             {
                 session.Dispose();
             }
             catch (Exception E)
             {
                 _server.Server.LogError(E);
             }
         }
     }
 }