Запуск нескольких служб через сеть.труба в WCF
Я создаю распределенное приложение, которое потребует 6 различных служб. Мне придется продемонстрировать приложение на моем ноутбуке XP с помощью Visual Studio 2008.
Возможно ли запустить несколько служб на localhost одновременно, все используя net.трубка?
Например:
net.pipe://localhost/DirectoryService
net.pipe://localhost/MathService
Если нет, то есть ли другой способ разместить эти службы WCF без использования IIS/webdev server? сеть.протокол TCP? Что-то еще?
3 ответа:
Да, при условии, что адреса привязки уникальны. Два примера, которые вы показали, прекрасно работают с сетью.обвязка труб.
Имейте в виду сеть.связывание труб будет работать только на локальной машине. Если вы хотите, чтобы ваши службы были доступны с удаленных компьютеров, вам потребуется использовать другую привязку, например net.протокол TCP. Тем не менее, нет.pipe-эторекомендуемая привязка , которую следует использовать, если ваши службы работают на локальном хосте, поскольку она более эффективна, чем другие привязки.
Еще одна вещь, которую вы должны знать о сети.адреса каналов - это то, что вы предоставляете URN, а не URL. сеть.pipe-это реализация в памяти, и" адрес", который вы указываете, может быть любым.
net.pipe://IHateCats net.pipe://NamedPipes/Are/Fast
Все это будет работать, независимо от любого другого фактора. Это просто уникальный идентификатор для этого именованного канала. Сетевой стек не участвует в этой форме связи.
Вы можете использовать HTTP в качестве конечной точки службы без IIS, взгляните на класс ServiceHost . Это то, что я использую для локального тестирования WCF, и это работает очень хорошо.