Как правильно распорядиться услугами WCF? - PullRequest
2 голосов
/ 19 января 2010

Мой сервис WCF IDisposable, потому что он использует ReadWriterLockSlim. Когда я избавляюсь от них обоих следующим способом:

public void Dispose()
{
    lockSlim.Dispose();
}

Некоторые из открытых методов все еще работают (или принимают новые подключения, я не знаю), и он вызывает исключения из-за попыток использования удаленных объектов (в данном случае lockSlim). Было бы лучше, если бы при остановке службы WCF, размещенной в службе Windows, метод Dispose вызывался после остановки всех запущенных методов и закрытия его для новых подключений. Но, похоже, это нужно делать вручную. Есть какие-нибудь ярлыки или примеры?

1 Ответ

1 голос
/ 25 января 2010

Я думаю, что нет необходимости удалять объект LockSlim.При остановке службы позвоните ServiceHost.Close ().все потоки прервут его работу, все ссылки будут разорваны, а сборщик мусора позаботится о памяти.ReadWriterLockSlim не является критически важным ресурсом.Пожалуйста, дайте мне знать, если это было полезно

...