DIDiskQuotaUser утечка файловых дескрипторов - PullRequest
1 голос
/ 31 января 2011

Я подал заявку на проверку приложения проверки квот, все сделано так:

DIDiskQuotaUser QuotaInfo = null;
try
{
    QuotaInfo = this.gDiskQuotaControl.FindUser(SAMUser);
}
catch
{
    QuotaInfo = null;
}

Определение FindUser

[DispId(1610743828)]
public virtual DIDiskQuotaUser FindUser(string LogonName);

Приходит:

[TypeLibType(2)]
    [ComSourceInterfaces("DiskQuotaTypeLibrary.DIDiskQuotaControlEvents")]
    [Guid("7988B571-EC89-11CF-9C00-00AA00A14F56")]
    [ClassInterface(0)]
    public class DiskQuotaControlClass : DIDiskQuotaControl, DiskQuotaControl, DIDiskQuotaControlEvents_Event, IDiskQuotaControlEvents, DIDiskQuotaUser, IEnumerable

Проблема в том, что в цикле происходит утечка файловых дескрипторов на сервере, который я проверяю, и я не вижу никакого способа избавиться от возврата из FindUser

1 Ответ

1 голос
/ 31 января 2011

Я бы попытался вызвать Marshal.FinalReleaseComObject для объекта.Это должно быть эквивалентно вызову Release для COM-объекта до тех пор, пока его счетчик ссылок не станет равным нулю, что должно уничтожить объект и освободить его дескриптор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...