Службы WCF на том же компьютере

У меня есть 6 веб-служб WCF в моем веб-приложении.

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

В моей реальной среде (как и во всех моих средах) все мои веб-службы размещены на одном компьютере (каждый интерфейсный сервер имеет эти службы).

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

Мой вопрос в том, можно ли называть эти веб-службы «не-http-overheady», поскольку они все равно живут на одной машине?


person Sachin Kainth    schedule 02.03.2012    source источник
comment
Я думаю, тогда это невозможно.   -  person Sachin Kainth    schedule 02.03.2012
comment
вы можете попробовать обслуживать веб-службы на другом сайте и в пуле приложений из-за проблем с производительностью.   -  person Özgür Kara    schedule 02.03.2012
comment
Все 6 веб-сервисов находятся на отдельном сайте на одном компьютере.   -  person Sachin Kainth    schedule 02.03.2012
comment
Как вы думаете, почему услуги являются частью проблемы? Делали ли вы профилирование производительности?   -  person John Saunders    schedule 02.03.2012
comment
Да, мы используем Redgate Profiler, и это занимает много времени.   -  person Sachin Kainth    schedule 02.03.2012


Ответы (1)


Правила выбора привязки конечной точки WCF

  • Если вам требуется, чтобы ваша служба использовалась клиентами, совместимыми с SOAP 1.1, используйте basicHttpBinding для взаимодействия.

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

  • Если вам требуется, чтобы ваша служба использовалась через Интернет, а клиент совместим с WCF, используйте wsHttpBinding, чтобы воспользоваться всеми преимуществами
    спецификаций WS*.

  • Если вам нужно, чтобы ваша служба была доступна только на том же компьютере, используйте netNamedPipeBinding

  • Если вам требуется, чтобы ваша служба была очередью сообщений, используйте netMsmqBinding

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

person Min Min    schedule 02.03.2012