WCF ConcurrencyMode Single и InstanceContextMode PerCall

У меня проблема с конфигурацией моей службы wcf. Я бы хотел, чтобы каждый вызов моей службы создавал новый экземпляр службы. Для параллелизма я хотел бы, чтобы один вызов завершался перед запуском другого.

Таким образом, если у меня есть такая услуга:

[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Single,
InstanceContextMode=InstanceContextMode.PerCall)]
public class MyService: IMyService
{
    public bool MyServiceOp()
    {
        Debug.WriteLine("thread "+ 
            Thread.CurrentThread.ManagedThreadId.ToString());
        Debug.WriteLine("start operation ");
        Do_work()
        Debug.WriteLine("end operation");
        return true;
    }
}

Когда я вызываю ее с помощью нескольких вызовов в цикле, трассировка дает:

thread 1
thread 2
start operation
start operation
end operation
end operation

Пока Я бы хотел вот это:

thread 1 start operation end operation
thread 2 start operation end operation

Возможно ли такое? Спасибо

20
задан Kirk Broadhurst 22 September 2011 в 04:00
поделиться