Настройки конфигурации Wcf для службы .svc для максимальной производительности и ограниченных клиентов - PullRequest
2 голосов
/ 02 февраля 2012

У меня есть служба wcf .svc, установленная на IIS на сервере Windows 2003, и клиенты в приложениях asp.net, установленные на разных серверах Windows 2003 в одном домене.На хосте IIS можно использовать только HTTP-транспорт AFAIK.

Мне нужно указать параметры конфигурации, которые

  1. максимизируют производительность и

  2. только моим клиентам (расположенным в моем домене) должно быть разрешено использовать мой сервис.Служба не должна быть обнаруживаемой и не должна использоваться от неавторизованных клиентов.

ОБНОВЛЕНИЕ: я решил шифровать сертификат сообщения, чтобы удовлетворить 2-е требование, но это не очень хорошо с точки зрения производительноститочка зрения.

Услуга состоит из операций с числами со строками или параметрами списка строк

[OperationContract]
List<string> TranslateList(List<string> textList);

Строки короткие, а число в списке, как правило, также мало.Клиенты вызывают службу синхронно и ожидают быстрого получения ответа.

Пожалуйста, предложите, какие параметры конфигурации использовать?

Будут ли изменены параметры для других конфигураций, таких как

конфигурация B : клиенты и сервис расположены на одном сервере Windows 2003

конфигурация C : клиенты и сервис расположены на том же сервере Windows 2008 (я полагаю, я мог бы использовать именованный транспортный канал)

конфигурация D : клиенты и службы расположены на разных Windows 2008серверы . (я ожидаю, что смогу использовать транспорт TCP)

1 Ответ

0 голосов
/ 02 февраля 2012
  1. Производительность: Вы можете Сжать ваш запрос и ответ.Вы можете добиться этого, используя gZip .
  2. Только для моих клиентов
    • Удалите привязку mex из вашего web.config и во-вторых установите httpGetEnabled наfalse.Таким образом, никто не сможет создать прокси вашего сервиса.
    • Вы можете использовать Http Headers, чтобы проверить, поступает ли запрос только от вашего клиента.Подробнее об этом здесь .

Для выбора привязок здесь - хорошая статья

Конфигурация B: WSHttpBindingКонфигурация C: NetNamedPipeBindingКонфигурация D: NetTcpBinding

Вы также можете проверить производительность NetTcpBinding здесь

Надеюсь, это поможет вам.

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