Remoting nur temporär verfügbar



  • Servus,

    momentan schlage ich mich mit einem kleinen Problem herum. Folgender Code:

    Server:

    /// <summary>
    		/// Starts remoting
    		/// </summary>
    		internal void StartRemoting()
    		{
    			m_oChannel = new TcpChannel ( BurnSystems.Depon.Network.Port + 1 );
    			ChannelServices.RegisterChannel ( m_oChannel );
    			m_oThisRemoting = RemotingServices.Marshal ( this, "remotingcenter" );
    		}
    

    Client:

    RemotingCenter oCenter = ( RemotingCenter ) Activator.GetObject (
    				typeof(RemotingCenter),
    				"tcp://localhost:" + ( BurnSystems.Depon.Network.Port + 1 ).ToString() + "/remotingcenter");
    

    Das Problem ist nun, dass der Client für etwa 2 bis 3 Minuten zu diesem RemotingCenter connection kann. Nach einer längeren Pause 'verschwindet' das Objekt und ich erhalte folgende Exception:

    [RemotingException: Angeforderter Dienst wurde nicht gefunden]
       System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +264
       System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +877
       BurnSystems.Depon.Server.RemotingCenter.GetArchive(String strName) in g:\projekte\spiele\c#\depon\code\burnsystems.depon.server\remotingcenter.cs:95
       deponweb.xml.getarchive.Page_Load(Object sender, EventArgs e) in g:\projekte\spiele\c#\depon\code\deponweb\xml\getarchive.aspx.cs:29
       System.Web.UI.Control.OnLoad(EventArgs e) +67
       System.Web.UI.Control.LoadRecursive() +35
       System.Web.UI.Page.ProcessRequestMain() +750
    

    Ich vermute es liegt daran, dass der GC der Meinung ist, dass das Server-Objekt nicht mehr benötigt wird, obwohl noch auf das RemotingObjekt im Server referenziert wird.

    Woran könnte das Problem liegen?

    Danke und Grüße,
    Das Lichtkind



  • Die Lösung war:

    public override object InitializeLifetimeService()
    {
    return null;
    }


Anmelden zum Antworten