При каких обстоятельствах имеет смысл запускать клиент и сервер WCF на одном компьютере? - PullRequest
1 голос
/ 26 мая 2010

В Изучение WCF Мишелем Бустаманте есть раздел, в котором описывается привязка, называемая NetNamedPipes . В книге говорится, что эта привязка может использоваться только для служб WCF, которые будут вызываться исключительно с одного компьютера.

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

Ответы [ 2 ]

4 голосов
/ 26 мая 2010

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

Ю может начать со всего в одном окне, потому что у вас меньше трафика, и использовать именованные каналы, потому что это был кратчайший путь к службе. Затем, если загрузка потребовала этого, вы можете переместить службу в другое окно, а затем изменить ее на использование TCP или HTTP.

2 голосов
/ 26 мая 2010

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

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

Я не думаю, что выЯ буду использовать связывание NetNamedPipe очень много в ваши дни WCF, но в некоторых случаях оно может иметь смысл и быть весьма полезным в таких специализированных сценариях.

...