一千萬個為什麽

搜索

.NET Remoting內存泄漏?

我有一個Remoting Class作為Singleton


   
      
         
            
         
         
            
         
      
   

它是在“服務器”服務中創建的。 另一個客戶端服務使用此遠程對象。 客戶端使用計時器(輪詢)每隔0.5秒調用遠程對象(用於測試)

如果服務器服務停止,那麽遠程對象不可用,客戶端服務的內存使用量不斷增加......

我已經覆蓋了InitialLifetimeService以返回null

public override Object InitializeLifetimeService()
        {
            return null;
        }

如果遠程對象不可用.net將所有對此對象的調用請求排隊?直到消耗掉所有內存? 如果遠程對象不可用,我如何設置並停止嘗試調用遠程方法?

最佳答案

.NET Remoting不會將對遠程對象的調用排隊。當遠程對象不再可用並且您在其上調用方法時,您應該收到Exception(WebException,RemotingException),找不到所請求的服務。

我認為你的問題在別的地方。也許您在代碼中忽略了可能的異常,並且沒有正確處理它。

您是否再次使用相同的計時器來調用遠程對象,或者每隔0.5秒創建一個新計時器來調用遠程對象?

轉載註明原文: .NET Remoting內存泄漏?