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;
}