Здравствуйте все!
Осваиваю wcf, столкнулся с проблемой. Гугление не помогло.
Имеется wcf сервис, поднимаемый в обычном managed-приложении.
Uri address = new Uri("http://localhost:8000");
service = new ServiceHost(typeof(ManagerService), address);
try
{
service.AddServiceEndpoint(typeof(ManagerService), new BasicHttpBinding(), "Manager");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
service.Description.Behaviors.Add(smb);
service.Open();
log.Debug("Запущен сервис");
}
Сервиc представлен как:
[ServiceContract]
class ManagerService
{
//...
[OperationContract]
public string GetModuleCalc(string ModuleName, string param)
{
//...
}
[OperationContract]
public void SayHello(string MyUri, string[] MyModules, Classes.ComputerParams MyComputer)
{
//...
}
[OperationContract]
public string Calc(string module, string param)
{
//...
}
}
Проблема в том, что пока сервис не выполнит один запрос, он не начинает выполнять второй и т.д. То есть запросы выполняются строго по очереди без параллельной обработки. Как сделать так, чтобы сервис мог обрабатывать запросы параллельно?
Пробовал играться со свойствами ServiceBehavior, а именно с ConcurrencyMode и InstanceContextMode, но желаемого поведения не получил, сервис все равно выполняет запросы строго по очереди.