2009-05-18 2 views
3

У меня возникла проблема с приложением WCF, которое я написал.Проблемы WCF с удаленным использованием привязки net.pipe

Когда клиент и сервер находятся на одном компьютере, он работает нормально, однако, когда я пытаюсь запустить его с клиентом и сервером на двух отдельных машинах (как и должно быть запущено), я получаю следующее в исключении :

System.ServiceModel.EndpointNotFoundException: Там не было конечной точкой прослушивания в net.pipe: //vm101.lab.foo.co.uk/VDNService, которые могли бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Дополнительную информацию см. В InnerException, если имеется.
System.IO.PipeException: Конечная точка трубы net.pipe: //vm101.lab.foo.co.uk/VDNService не найдена на вашем локальном компьютере.

То, что я не понимаю, является второй строкой исключения, что она не может найти конечную точку на моей локальной машине. Конечная точка находится на другой машине, а не на моей локальной машине?

Я использую привязку сети с именем pipe (NetNamedPipeBinding), а не HTTP.

И код WCF закодирован вручную, а не сгенерирован (как я понимаю, это норма, я не узнал об этом до тех пор, пока не напишу приложение).

Любая помощь будет оценена по достоинству.

ответ

7

«net.pipe» обращается к местному транспорту. Вам нужно использовать другую привязку для разговора на машинах. Вероятно, вы хотите использовать netTcp.

http://msdn.microsoft.com/en-us/library/ms730879.aspx

+0

может чистый ТСР делать обратные вызовы? Причина, по которой я пошел с чистой трубкой по Http, заключалась в том, что она позволяла перезвонить. –

+0

Да, может. (yadda yadda не менее 15 символов) – Brian

+0

Сколько головной боли будет для меня конвертировать мой код из чистой трубы в net tcp? Это всего лишь случай замены NetNamedPipeBinding на NetTcpBinding? или есть ли еще больше, чем это? –

Смежные вопросы