У меня есть Remoting класс как Singleton.NET Удаленная утечка памяти?
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown
mode="Singleton"
type="PTSSLinkClasses.PTSSLinkClientDesktopRemotable, PTSSLinkClasses"
objectUri="PTSSLinkDesktop" />
</service>
<channels>
<channel ref="http" port="8901"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
Its созданных в службе "сервера". Другой клиентский сервис использует этот удаленный объект. Клиент вызывает удаленный объект каждые 0,5 секунды с использованием таймера (опроса) (для тестирования)
Если служба сервера остановлена, поэтому удаленный объект недоступен, использование памяти для обслуживания клиентов продолжает расти. .....
Я перезаписаны InitialLifetimeService вернуть Нуль
public override Object InitializeLifetimeService()
{
return null;
}
Если удаленный объект не доступен ли .net очереди все запросы вызовов на этот объект ??? пока не будет потреблена вся память? Как я могу обнаружить, если удаленный объект недоступен, и перестать пытаться вызвать удаленный метод?
Кроме того, не обманывайтесь тем, как вы измеряете память и как работает сбор мусора в .NET. Просто может быть, что никакой сборки мусора не произошло или было что-то собрать. Утечки памяти могут иметь всевозможные источники, я настоятельно рекомендую читать в .NET-памяти и сборку мусора. – urbanhusky