2010-04-18 2 views
1

У меня есть 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 очереди все запросы вызовов на этот объект ??? пока не будет потреблена вся память? Как я могу обнаружить, если удаленный объект недоступен, и перестать пытаться вызвать удаленный метод?

ответ

3

. NET Remoting не вызывает очереди на удаленные объекты. Когда удаленный объект больше не доступен и вы вызываете метод на нем, вы должны получить исключение (исключение WebException, RemotingException), чтобы запрошенная служба не была найдена.

Я думаю, что ваша проблема находится где-то в другом месте. Возможно, вы игнорируете возможное исключение в своем коде и не обрабатываете его правильно.

Вы снова используете тот же таймер для вызова удаленного объекта, или вы создаете каждые 0,5 секунды новый таймер для вызова удаленного объекта?

+0

Кроме того, не обманывайтесь тем, как вы измеряете память и как работает сбор мусора в .NET. Просто может быть, что никакой сборки мусора не произошло или было что-то собрать. Утечки памяти могут иметь всевозможные источники, я настоятельно рекомендую читать в .NET-памяти и сборку мусора. – urbanhusky

Смежные вопросы