Как разделить рабочие контракты службы WCF на режим параллелизма на один и несколько - PullRequest
2 голосов
/ 11 октября 2011

У меня есть одна служба Service A с 2 контрактами на операции CheckServer и AddService.Поскольку Служба одноуровневая с режимом Concurrey как Single [ServiceBehavior (ConcurrencyMode = ConcurrencyMode.Single)] *

public Class Service : Iservice
{
   public bool CheckService()
    {
       //Checks server avilabality and returns bool value
    }

   public int AddService(int a, int b)
    {
      return int i = a + b;
    }
}

Здесь мое требование - разрешить только одну Instace из AddService, поэтому я сделал это как singleton.Теперь CheckServvice не обязательно должен быть Singleton, так как я могу разделить реализацию этих двух методов, чтобы сделать AddService как singleton и CheckService как несколько.

Заранее спасибо

1 Ответ

2 голосов
/ 11 октября 2011

WCF не предоставляет то, что вы хотите.Поместите эту логику за пределы WCF и напишите свою собственную логику синхронизации.Например, реализуйте одноэлементный класс, выставляющий CheckService и AddService, где синхронизация будет напрямую в методе AddService, а метод CheckService будет свободен для вызова.

Сделайте стандартную службу WCF для каждого вызова, делегирующую обработкутвой синглтон класс.

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