У меня есть служба WCF, настроенная следующим образом:
InstanceContextMode = InstanceContextMode.PerCall,
ConcurrencyMode = ConcurrencyMode.Multiple
У меня есть метод, при котором я вызываю службу примерно десять раз в секунду в течение примерно 30 секунд.Случайно, служба перестает работать, и клиент останавливается на линии, где вызывается служба.
На стороне сервера у меня есть статический объект "MyStaticObject" (не объявлен в моей службе, этодругой класс на сервере).Этот объект представляет собой словарь, который содержит несколько экземпляров объектов, в которых есть фоновый работник.
Я не думаю, что в базе данных есть тупик, поскольку он блокируется при попытке доступа к службе, а не при попыткедля доступа к базе данных.
В настоящее время я блокирую свой словарь следующим образом:
lock (MyClass.MyStaticLockObject)
{
MyClass.MyStaticObject...;
}
Я хотел бы знать, что может вызвать такое странное поведение.