Peeyush Pachaori Ответов: 0

Почему поведение службы "releaseserviceinstanceontransactioncomplete = false" требуется при включенном режиме "concurrencymode. multiple" для транзакций


В одной из моих операций Службы WCF включена транзакция-
[OperationBehavior(TransactionScopeRequired = true)]
public Car UpdateCar(Car c)
{
}

Ранее я запускал эту службу с InstanceContextMode как PerCall и ConcurrencyMode как Multiple, что приводило меня к следующей ошибке-

Необработанное исключение типа ' System.InvalidOperationException ' произошло в системе.ServiceModel.dll дополнительная информация: служба InventoryManager настроена так, что ReleaseServiceInstanceOnTransactioncomplete имеет значение true, но ConcurrencyMode не имеет значения Single. ReleaseServiceInstanceOnTransactioncomplete требует использования ConcurrencyMode.Одиночный.

Что я уже пробовал:

Чтобы решить вышеприведенную ошибку, я установил 'ReleaseServiceInstanceOnTransactioncomplete' в false, и это сделало свое дело.
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall
                 , ConcurrencyMode = ConcurrencyMode.Multiple
                 , ReleaseServiceInstanceOnTransactionComplete = false)]

Может ли кто-нибудь помочь понять, как удаление экземпляра службы с помощью "Перколла" и "множественного" случая решило эту проблему. В чем проблема WCF думает, если я выпущу экземпляр службы?

0 Ответов