簡體   English   中英

.NET遠程內存泄漏?

[英].NET Remoting memory leak?

我有一個單身人士的遠程班

<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>

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

如果服務器服務已停止,因此遠程對象不可用,則客戶端服務的內存使用量將不斷增加……

我已覆蓋InitialLifetimeService以返回null

public override Object InitializeLifetimeService()
        {
            return null;
        }

如果遠程對象不可用,.net會將對該對象的所有呼叫請求排隊嗎??? 直到所有的內存都用完了? 如果遠程對象不可用,如何檢測並停止嘗試調用遠程方法?

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM