Параллельные звонки WCF через общий канал

У меня есть веб-уровень, который перенаправляет вызовы на уровень приложений. Для этого веб-уровень использует общий кешированный канал. Рассматриваемые службы уровня приложений не имеют состояния и имеют параллельный доступ.

Но они не вызываются одновременно.

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

я нашелЭта статья на MSDN, который заявляет:

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

Во-первых, я не отправляю большие сообщения (просто много маленьких, так как я выполняю нагрузочное тестирование), но все еще вижу поведение блокировки. Во-вторых, это довольно открытая и бесполезная документация. Он говорит, что они «могут не поддерживать» написание более одного сообщения, но не объясняет сценарии, при которых они будут поддерживать одновременные сообщения.

Может кто-нибудь пролить некоторый свет на это?

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

Ответы на вопрос(3)

Ваш ответ на вопрос