Re[10]: WCF: UserNamePasswordValidator concurrency
От: Аноним  
Дата: 24.04.11 11:16
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Предпологаю что проблема в том, что ты не поменял дефолтное значение MaxConnections которое по умолчанию 2.

и как ты объяснишь мое:
что это за ququing который повляется только когда пауза имитируется в password validator'е, а как только эту саму паузу переносят в тело метода сервиса куинг пропадает.

ну да ладно, вот код который используется
 ServicePointManager.DefaultConnectionLimit = int.MaxValue;

и далее я сие выделил в тексте

всетаки ты не прочитал кстати, автор той темы не я, но там есть и мои ответы, в том числе (цитирую):

It's a simple test:
sealed class MyPasswordValidator : UserNamePasswordValidator
{
        public override void Validate(string userName, string password)
        {
            Thread.Sleep(1000);
        }
    }

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple)]
    public sealed class MyService : IMyService
    {
        public int Get(int i)
        {
            return i;
        }
    }
}


Binding:
<basicHttpBinding>
            <binding name="SubscriberBasicTransportWithMessageCredential">
              <security mode="TransportWithMessageCredential">
                <message clientCredentialType="UserName" />
              </security>
            </binding>


Throttling:
<serviceThrottling maxConcurrentCalls="350" maxConcurrentSessions="350" maxConcurrentInstances="350" />


From client i create 30 ChannelFactory with different credetials and 30 channels. Then starts parallel asyncrhonous calls (i see 30 different https sessions). In the result responses comes sequentially with interval of 1 second (Thread.Sleep(1000) in the Validate) — 1 response per second! But in real parallel validation it must be 30 per second and grow up in in accordance with parallel requests!

Where is parallel password validagion? %)

What i'm doing wrong?

p.s. sorry fo my poor english )))
p.s1. and one more thing: if i move Thread.Sleep(1000) from Validate to the service method body — Get — i see 30 responses per second ))) i.e. service method calls is parallel but not Validate


не нужно упрощать проблему невнимательно читая мои ответы. в них уже содержаться ответы на твои вопросы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.