Вы спасли мою жизнь!!!

я есть приложение Winforms, которое предоставляет службу WCF.

Из IIS я пытаюсь использовать сервис. С 2 разных компьютеров пытаюсь позвонитьtest1.aspx который в свою очередь вызывает WCF внутри приложения Winforms.

test1.aspx => from computer 1 => First Call
test1.aspx => from computer 2 => Second Call

Я вижу, что WCF является однопоточным, и прежде чем он начнет обрабатывать CALL 2, он должен завершить обработку CALL 1.

[ServiceBehavior(IncludeExceptionDetailInFaults = true, 
                 ConcurrencyMode=ConcurrencyMode.Multiple, 
                 InstanceContextMode=InstanceContextMode.PerSession)]

У меня Windows Server 2008 R2 и IIS 7.5

Может кто-нибудь помочь мне?

 marc_s17 янв. 2011 г., 23:01
Как вы размещаете свой сервис WCF в приложении Winforms? В зависимости от того, как вы это сделаете, это может оказаться однопоточным или однопоточным сервисом ....

Ответы на вопрос(1)

когда служба размещается в потоке пользовательского интерфейса, что, вероятно, является вашим случаем. По умолчанию обработка WCF включается в цикл обработки сообщений Windows, поэтому обработка запросов не только станет последовательной, но и остановит всю обработку событий в пользовательском интерфейсе WinForms (приложение зависнет).

Чтобы избежать этого, вы должны явно указать, что не хотите размещать службу в потоке пользовательского интерфейса:

[ServiceBehavior(UseSynchronizationContext = false)]
 darez18 янв. 2011 г., 08:46
Это решение:
 Rowinson Gallego07 авг. 2013 г., 08:52
Вы спасли мою жизнь!!!

Ваш ответ на вопрос