[英].NET Remoting Singleton memory leak, TCP, Marshal by Reference
[英].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.