Hej hej! Jag har löst problemet, det låg utanför det jag berättat om hur. Men det hade attServern "tappar" förbindelsen med CAO-objekt efter ca 7 minuter
Jag har ett ganska komplicerat och troligen ovanligt fel. Jag har sökt igenom hela Internet, fram och tillbaka, från vänster till höger utan att hitta något. Jag skall göra mitt bästa för att förklara situationen här, kanske är det ett litet skräpfel eller en bugg i Frameworket?
Jag har en server applikation som lyssnar på http-kanalen port 13101 och exposar ett antal typer, den intressanta här är "OnlineUser" som är ett Client Activated Object.
OnlineUser ligger i ett eget projekt, Library som både server och klient har tillgång till.
När en klient loggar in så skapas ett CAO-object av typen OnlineUser på servern som representerar användaren.
I serverns app.config fil har jag specificerat att leasetiden skall vara 45 sekunder från början och 40 sekunder för varje renew därefter. I klienten har jag en trådad funktion som kallar en metod i OnlineUser var 20e sekund, en sorts ping. Om klienten tappar uppkopplingen så tar en sponsor hand om att dispose'a OnlineUser. Lease tid, "ping" och sponsor fungerar fint, det har jag testat på flertalet sätt.
Problemet är när jag har 2 klienter som skall prata med varandra via servern... när den ena klientens CAO-objekt skall invokera en metod i CAO-objekt nr 2 (det är en IM-applikation, och meddelanden skickas genom informationsutbyte mellan användarnas CAO-objekt) så får jag efter ca 7 minuter följande felmeddelande:
Object </5e8a3e69_c127_42b4_a1a5_4085320a4e1a/1.rem> has been disconnected or does not exist at the server
Innan ca 7 minuter fungerar applikationen fint. Enligt alla uppgifter jag hittat är detta pga att CAO-objektet tagits bort efter att leasetiden gått ut, jag vet dock att det inte har gjorts både pga av att "ping" funktionen i klienten varit aktiv och att sponsorn inte har kallats.
Mina funderingar har kretsat runt ifall server applikationen räknas som ett Server Activated Object - Singleton, och att det kanske startas om efter att ingen har invokerat någon metod i det efter ett tag. Dock rimmar tiden 7 minuter illa med default tiden 5 minuter plus att jag inte lyckats komma närmare lösningen med override InitializeLifeTimeServices() i servern.
Jag vet att det är en stort problem o sätta sig in i, men alla tankar är välkomna!
/JonasSv: Servern "tappar" förbindelsen med CAO-objekt efter ca 7 minut
göra med lease-tiden på ett annat objekt.
Jag sätter löst så att ingen lägger onödig tid på att tänka på saken!