Почему Домене.GetLifetimeService возвращает null?
Мое приложение использует AppDomain для загрузки dll. Если я не вызываю методы из домена приложения более 5 минут, то при повторном вызове метода я получаю следующую ошибку:
Объект "[...].Рем' был отключен или не существует на сервере.
Я прочитал много документации (например, http://msdn.microsoft.com/en-us/magazine/cc300474.aspx или http://www.codeproject.com/Articles/14791/NET-Remoting-with-an-easy-example относительно .NET Remoting Framework и objects lifetime, и я знаю, что эта проблема связана с арендой. А именно, объекты AppDomain имеют аренду, и если срок аренды истекает (по умолчанию через 5 минут), сборщик мусора соберет объект AppDomainand, и при обращении к какому-либо члену домена приложения будет выдано исключение, описанное выше. Таким образом, я пытаюсь получить аренду моего домена приложения, чтобы продлить его:
// 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()" возвращает ноль!
Я также видел, что метод "AppDomain.InitializeLifetimeService () " дает домену приложений бесконечное время жизни, предотвращая создание аренды. Я попробовал также это, но я все еще получаю сообщение об ошибке выше.
Что мне нужно сделать?
Заранее спасибо за любую помощь!