Я начал изучать WCF и успешно создал несколько тестовых http-сервисов. Теперь я пытался создать самообслуживаемую службу WCF, используя привязку net.pipe. Ниже приведен конфигурационный файл для службы: -Добавление ссылки на службу net.pipe
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service behaviorConfiguration="MEX" name="InProcService.MyService">
<endpoint address="MyService"
binding="netNamedPipeBinding" bindingConfiguration="" contract="InProcService.IMyService" />
<endpoint address="Mex" binding="mexNamedPipeBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.pipe://localhost/InProcService/" />
<add baseAddress="http://localhost:8001/InProcService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MEX" >
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Теперь в моей хост-приложения, я начинаю обслуживание с помощью: -
ServiceHost host = new ServiceHost(typeof(MyService));
host.Open();
Console.WriteLine("Service started");
host.Close();
Служба запускается правильно, когда этот код выполняется.
Теперь, когда в моем клиентском приложении я пытаюсь добавить ссылку на службу к этой запущенной службе, она не может ее найти. Есть ли что-то, что я не делаю или делаю неправильно?
Буду признателен за любую помощь, которую я могу получить.
Cheers, Abhi.
Адрес, использованный для перевода: «Добавить Service Reference»? Что именно вы получаете? Кроме того, попробуйте использовать программу svcutil.exe из командной строки - вы должны уметь видеть ошибки. –
Как вы указываете на свою услугу при добавлении ссылки на службу? Адрес конечной точки должен выглядеть так: net.pipe: // localhost/InProcService/MyService – volpav
В сообщении об ошибке указано: - «Метаданные содержат ссылку, которая не может быть разрешена:« net.pipe: // localhost/InProcService/MyService ». Не было прослушивание конечных точек в net.pipe: // localhost/InProcService/MyService, которые могли бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Дополнительные сведения см. В InnerException, если присутствует. Конечная точка канала 'net.pipe: // localhost/InProcService/MyService' не найден на вашем локальном компьютере. Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу. " Есть идеи? –