내 응용 프로그램은 DLL을로드하기 위해 AppDomain을 사용합니다. 나는 많은 문서를 읽을 AppDomain.GetLifetimeService가 null을 반환하는 이유는 무엇입니까?
(예 http://msdn.microsoft.com/en-us/magazine/cc300474.aspx 또는 http://www.codeproject.com/Articles/14791/NET-Remoting-with-an-easy-example 닷넷에 관한 : 내가 5 분 이상에 대한 응용 프로그램 도메인에서 메서드를 호출하지 않으면 나는 다시 메서드를 호출 할 때 , 나는이 오류 Remoting Framework 및 Objects lifetime이 문제는 Leases와 관련이 있습니다. 즉, AppDomain 개체에 임대가 있고 임대가 만료되면 (기본적으로 5 분 후) 가비지 수집기가 AppDomainand를 수집하고 위에보고 된 예외가 throw됩니다 앱 도메인의 일부 회원이 액세스하는 경우 따라서 앱을 갱신하기 위해 내 AppDomain을 임대하려고합니다.Object '[...].rem' has been disconnected or does not exist at the server.
// Release the created AppDomain
if (myDomain != null)
AppDomain.Unload(myDomain);
// Create a new AppDomain
domainInfo = new AppDomainSetup();
domainInfo.ApplicationBase = "c:\myDll.dll";
domainInfo.ApplicationName = "myExternalApp";
myDomain = AppDomain.CreateDomain("myAppName", null, domainInfo);
myWrapper = (IDataManager) myDomain.CreateInstanceAndUnwrap("MYWrapper","MYWrapper.MyFunctions");
ILease lease = (ILease)myDomain.GetLifetimeService(); //but lease is null !!!!!
"GetLifetimeService()"은 null을 반환합니다.
"AppDomain.InitializeLifetimeService()" 임대가 생성되지 않도록하여 AppDomain에 무한 수명을 부여합니다. 나는 또한 이것을 시도했다. 그러나 나는 여전히 위에서보고 된 오류를 얻는다.
내가 필요한 대상은 무엇입니까?
미리 도움을 청하십시오!
대신 'AppDomain.InitializeLifetimeService'를 호출 해보세요. –
나는 또한 이것을 시도했다. 그러나 나는 아직도 오류를 얻는다. – Homer1982
흠, 아니요, AppDomains가 자동으로 언로드되지 않습니다. 객체를 생성하면 객체의 수명을 관리해야합니다. –