Регулирование запросов WCF - PullRequest
       11

Регулирование запросов WCF

2 голосов
/ 17 февраля 2012

Я использую стороннюю службу .NET 4 WCF, которая добавлена ​​к моему решению в качестве справочника услуг. Есть ли способ настроить запросы так, чтобы мой сервис не был Ddos: сторонний сервис?

Мне известно о ServiceThrottling, где можно управлять следующими параметрами:

- MaxConcurrentCalls
- MaxConcurrentSessions
- MaxConcurrentInstances

Мое приложение однопоточное, поэтому приведенные выше параметры не окажут никакого влияния.

Я хотел бы ограничить количество запросов за период времени. Может быть, сделав паузу между каждым запросом. Я мог бы, конечно, написать адаптер для службы и обработать ее самостоятельно, но сторонняя служба содержит ~ 200 методов, поэтому для нее потребуется много кода.

Можно ли регулировать запросы таким образом с помощью конфигурации ?

1 Ответ

2 голосов
/ 26 марта 2012

вашему вопросу уже несколько недель, поэтому я не знаю, нужно ли вам это по-прежнему.По крайней мере, стоит попробовать ... Также, пожалуйста, поправьте меня, если я неправильно понял ваш сценарий.

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

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

Есть два решения, которые приходят мне на ум.

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

Более сложное, но, возможно, лучшее масштабируемое решение: вы можете настроить свою службу для записи в инфраструктуру Microsoft Message Queue (MSMQ)и добавить еще одну службу , которая последовательно обрабатывает эти сообщения, в стороннюю службу.

...