Когда вызывается метод WCF, он передается службе экземпляр .
Деактивация экземпляра просто относится к моменту, когда система WCF удаляет этот экземпляр.
В службе для каждого вызова деактивация экземпляра будет происходить после каждого вызова метода.
В службе для каждого сеанса деактивация экземпляра будет происходить, когда клиент вызывает Close на прокси-сервере или когда сеанс транспортаистекло время ожидания неактивности.
В службе Singleton деактивация экземпляра будет происходить при закрытии узла службы.
Можно также настроить отдельные методы службы для запуска деактивации экземпляра:.
[OperationBehavior(ReleaseInstanceMode = ReleaseInstanceMode.AfterCall)]
public void MyMethodWhichTriggersAnAutomaticRelease()
{
// ...
}
Кроме того, вы можете вручную запускать выпуск экземпляра службы:
public void MyMethodWhichTriggersAManualRelease()
{
OperationContext.Current.InstanceContext.ReleaseServiceInstance();
}
Юваль Лоуи имеет это, чтобы сказать, нужно ли вручную отменять деактивацию стандартного экземплярамеханизмы:
Деактивация экземпляра - это метод оптимизации, как и все методы оптимизацииes, вы должны избегать этого в общем случае.Подумайте об использовании деактивации экземпляра только после того, как не сможете достичь целей по производительности и масштабируемости, и если тщательное изучение и профилирование не вызывает сомнений, что использование деактивации экземпляра улучшит ситуацию.