Tengo curiosidad por la duración del objeto compartido/estático en un dominio de aplicación donde las llamadas Remoting son la causa de la creación de los objetos compartidos.Vida útil remota para objetos estáticos en el dominio de la aplicación con objetos activados por el cliente
Estamos usando una configuración de Remoting que usa objetos activados por el cliente de los cuales solo usamos las funciones para llegar al servidor. Los objetos remotos se configuran como singletons.
El servidor configura un canal y utiliza RemotingConfiguration.Configure para cargar un archivo de configuración.
Algunas de estas funciones del servidor tocan y usan algunas variables estáticas (compartidas en vb.net) en el servidor. No puedo averiguar cuál es la duración de estas variables estáticas, se crean (se ejecuta el constructor estático) cuando se tocan por primera vez. Usando el registro no puedo ver que los objetos se deshagan/finalicen.
Esperando un par de minutos después de conectarse al servidor remoto, los objetos compartidos estarán vivos y en buen estado.
La pregunta:
Entonces, ¿qué es el tiempo en directo esperado de objetos estáticos en esta configuración de interacción remota. ¿Viven tan lejos como AppDomain o se ciclan cuando se intercambian los objetos Remoting? ¿Y cuál es la forma correcta de extender su vida útil si es necesario?
La respuesta:
tipos estáticos viven en dominio de aplicación, ya que accede por primera vez hasta el dominio de aplicación se descarga. Por lo tanto, no necesita prolongar su vida útil mientras AppDomain se esté ejecutando.
El hecho de que los objetos estáticos sean considerados como raíz por el recolector de basura y nunca serán sometidos a GC es algo que nunca se debe olvidar. – CodingBarfield