Подтвердить что ты не робот

Настройка WCF InstanceContextMode (для вызова, одиночный) в web.confg

Не сталкивайтесь с этим с довольно большим количеством Googling.

Я знаю, что могу установить экземпляр, украсив имя класса таким образом:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, 
                 ConcurrencyMode = ConcurrencyMode.Multiple)]

но могу ли я указать это в файле web.config?

Я знаю, что я могу указать дросселирование (максимальные одновременные пользователи и т.д.) в web.config/app.config и что здесь цифры имеют контекст в зависимости от режима экземпляра, но как указать режим (наиболее вероятно, поведение раздел app.config/web.config)?

Первоначально мы отправлялись на службы Windows. Теперь мы используем WAS. Разве WAS имеет значение - например. каждый запрос "каждый вызов" все равно получит собственный "сервер" в качестве операции с конвейером?

Спасибо

4b9b3361

Ответ 1

Вы не можете изменить InstanceContextMode и ConcurrencyMode в web.config с помощью встроенных функций, но вы можете написать свое собственное расширение (поведение или пользовательский раздел ServiceHost + ServiceHostFactory + config), чтобы сделать это, Вот пример, как изменить InstanceContextMode, не определяя его в атрибуте в классе службы.

Обработка в WAS одинакова - каждый тип сервиса по-прежнему имеет свой собственный хост службы, и каждый запрос обрабатывается в своем собственном потоке.

Ответ 2

Как и в предыдущих ответах, вы не можете сделать это без какой-либо работы. Я должен был сделать это для клиента недавно, и я зарегистрировал его здесь. Я также предоставил валидатору, чтобы он не разрешал запуск службы, если он не настроен так, как вам хотелось бы. Подробности здесь changing-wcf-concurrency-programatically.

Ответ 3

Вы не можете настроить InstanceContextMode и ConcurrencyMode в файлах конфигурации, построить ограничение в WCF, я уверен, что у MS есть свои причины.

О хостинге в WAS, если у вас есть веб-сервер с IIS 7/7.5, рекомендуется разместить вашу службу с WAS, потому что вы можете управлять своими службами с помощью IIS и получать из нее множество встроенных возможностей.