Запуск нескольких служб через net.pipe в WCF

Я создаю распределенное приложение, для которого потребуется 6 разных сервисов. Мне нужно будет продемонстрировать приложение на своем ноутбуке с XP, используя Visual Studio 2008.

Можно ли одновременно запускать несколько служб на локальном хосте, используя net.pipe?

Например:

net.pipe://localhost/DirectoryService
net.pipe://localhost/MathService

Если нет, есть ли другой способ разместить эти службы WCF без использования сервера IIS/webdev? net.tcp? Что-то другое?


person Aaron    schedule 14.04.2009    source источник


Ответы (3)


Да, если адреса привязки уникальны. Два показанных вами примера будут отлично работать с привязкой net.pipe.

Имейте в виду, что привязка net.pipe будет работать только на локальной машине. Если вы хотите, чтобы ваши службы были доступны с удаленных компьютеров, вам потребуется использовать другую привязку, например net.tcp. При этом net.pipe является рекомендуемой привязкой для использования, если ваши службы работают на локальном хосте, поскольку она более эффективна, чем другие привязки.

person Matt Davis    schedule 15.04.2009

Еще одна вещь, которую вы должны знать об адресах net.pipe, это то, что вы предоставляете URN, а не URL. net.pipe - это реализация в памяти, и указанный вами «адрес» может быть любым.

net.pipe://IHateCats
net.pipe://NamedPipes/Are/Fast

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

person Anderson Imes    schedule 15.04.2009

Вы можете использовать HTTP в качестве конечной точки службы без IIS, взгляните на ServiceHost. Это то, что я использую для локального тестирования WCF, и это работает очень хорошо.

person sipsorcery    schedule 14.04.2009