Служба WCF, размещенная в консольном приложении

Какую нагрузку может выдержать служба WCF, размещенная в консольном приложении? Может ли он обрабатывать входящие запросы так же хорошо, как WCF, размещенный на IIS?

Дополнительные примечания. Могут ли запросы поступать одновременно?

У меня есть служба WCF, размещенная в консольном приложении. Я вызываю эту службу WCF из веб-приложения. Это веб-приложение может иметь сотни запросов одновременно.

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


person Kaveh Shahbazian    schedule 02.07.2012    source источник
comment
Вы можете загрузить тестовые сервисы, используя что-то вроде loadui. Вы также можете настроить wcf для одновременной обработки запросов. Быстрый Google должен помочь вам в вашем пути.   -  person CSharpened    schedule 02.07.2012
comment
@abatishchev Спасибо за редактирование.   -  person Kaveh Shahbazian    schedule 03.07.2012


Ответы (2)


Неважно, где размещена служба WCF. Все зависит от привязки, конечной точки, поведения конечной точки и настроек поведения службы и, что не менее важно, от того, как вы устанавливаете (через атрибуты) режим создания экземпляров и тип параллелизма для вашей службы.

Эти параметры передаются экземпляру ServiceHost. Даже если оно работает в консольном приложении, само приложение является просто контейнером для ServiceHost, который создает среду выполнения для вашей службы WCF на основе заданных вами параметров.

Что вас интересует, смотрите здесь (параллелизм и дросселирование). Кроме того, кое-что очень обширное в режимах экземпляра WCF.

Из соображений производительности я рекомендую вам использовать одноэлементную службу, которую вы можете указать через InstanceContextMode. Если у вас есть сотни входящих запросов, параллелизм будет бесполезен, если для каждого запроса будет создаваться экземпляр службы. Вы должны проанализировать, возможен ли синглтон в вашем случае, проверив, являются ли все ваши сервисные операции потокобезопасными.

person Marcel N.    schedule 02.07.2012
comment
Кажется, синглтон в моем случае невозможен, потому что многие приложения будут делать много запросов в минуту. - person Kaveh Shahbazian; 03.07.2012
comment
@KavehShahbazian: на самом деле не имеет значения, сколько запросов. Может быть тысяч/сек. Пока вы не сохраняете какое-либо состояние или какой-либо пользовательский сеанс в своих службах (например, статические коллекции с некоторыми данными, измененными и прочитанными всеми запросами), все в порядке. - person Marcel N.; 03.07.2012

Какую нагрузку может выдержать служба WCF, размещенная в консольном приложении?

Столько, сколько может ваш компьютер для собственной службы WCF.

Хост может быть консольным приложением или службой Windows, не имеет значения, с точки зрения нагрузки они одинаковы.

person abatishchev    schedule 02.07.2012