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

Установите максимальную скорость загрузки в WCF

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

Как это сделать в WCF?

Спасибо!

4b9b3361

Ответ 1

WCF обрабатывает дросселирование через класс ServiceThrottlingBehavior.

Как отключить службу Wcf

WCF обеспечивает дросселирование управлять загрузкой и ресурсами сервера потребления (со следующими свойства):

  • MaxConcurrentCalls. Ограничивает количество одновременных запросов, которые могут обрабатываться всеми экземплярами службы. Значение по умолчанию - 16.

  • MaxConcurrentInstances. Ограничивает количество экземпляров службы, которые могут выделяться в данный момент времени. Для PerCall, этот параметр соответствует количество одновременных вызовов. Для Службы PerSession, этот параметр соответствует количеству активных сеансов экземпляров. Этот параметр не имеет значения для режима одиночного инстанса, потому что создается только один экземпляр. значение по умолчанию для этого параметра: 2147483647.

  • MaxConcurrentSessions. Ограничивает количество активных сеансов, разрешенных для обслуживание. Это включает в себя приложение сеансы, сеансы транспорта (для TCP и названные трубы, например), надежные сеансы и безопасные сессий. Значение по умолчанию - 10.

Я не думаю, что есть встроенный механизм для управления пропускной способностью. Вам нужно будет реализовать собственный поток. Вы используете поток для записи потока. Затем вы можете контролировать, сколько данных нужно записывать каждую секунду. Например, вы можете написать 250Kb, а затем выполнить нить в течение одной секунды.

Смотрите также: Concurrency и настройки Throttling для служб WCF

Ответ 2

Хорошо, безумная поздняя пятница выстрелила в темноту: Скотт Гу написал о новом модуле дросселирования скорости передачи данных для IIS 7. Здесь: http://weblogs.asp.net/scottgu/archive/2008/03/18/iis-7-0-bit-rate-throttling-module-released.aspx

Он фактически предназначен для медиафайлов, но из коробки он запускается расширением. Само по себе этого может быть недостаточно: вы обслуживаете файлы из службы -.svc, и вы, вероятно, не хотите дросселировать все ваши служебные вызовы. (если вы не против дросселировать их всех, это может сработать из коробки - просто установите правило на .svc.

Что еще интереснее, это сообщение: http://learn.iis.net/page.aspx/149/bit-rate-throttling-extensibility-walkthrough/ Этот парень рассказывает о том, как настроить дроссель.

Вы можете сделать это на основе содержимого ответа (у него есть примеры чтения битовой скорости внутри медиафайла).

Или примерно на 3/4 пути вниз по статье найдите этот заголовок: "Программно программирование серверных переменных"

Он описывает, как создать http-модуль/обработчик - теоретически вы можете использовать это, чтобы инициировать настройку IIS на основе URL-адреса (например, URL-адрес службы вашего медиа-сервера).

Никогда не пробовал это - общий WAG, прежде чем я вернусь домой на выходные. Удачи!