2013-06-28 3 views
0

Я использую VS2012. Конфигурация моего клиента не обновляется, когда я добавил ссылку на сервис службы WCF REST. Он обновляется, если я изменяю привязку к «basicHttpBinding» в службе WCF. Ниже приведена моя конфигурация службы WCF.Конфигурация клиента службы REST WCF не обновляется

<endpoint address="" binding="webHttpBinding" contract="MyService.IService1" behaviorConfiguration="RestBehavior"> 

<endpointBehaviors> 
    <behavior name="RestBehavior"> 
     <webHttp helpEnabled="true"/> 
    </behavior> 
    </endpointBehaviors> 

Служба WCF разделена на следующие проекты.

  1. WCFHost (не только SVC-файл с web.config, упомянутой выше, и использует два следующих projs)
  2. WCFInterfaces (библиотека классов, не имеет конфигурационный файл)
  3. WCFImplementaions (библиотека классов, имеет никаких конфигурационных файлов)

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

+0

Ваш вопрос неясен (если это вообще вопрос). Вы имеете в виду, что при обновлении Service Reference в вашем проекте клиента конфигурация вашего клиента не обновляется в соответствии с конфигурацией сервера? Затем щелкните правой кнопкой мыши ссылку «Сервис», нажмите «Настроить» и проверьте, указывает ли URL на правильный сервис. Этот URL-адрес используется для обновления ссылки, а не из вашей конфигурации. Если это совсем не актуально: расширьте свой вопрос с помощью реальных проблем, шагов для воспроизведения и того, что вы пробовали. – CodeCaster

+0

Спасибо за ответ. У меня есть вопрос, чтобы предоставить более подробную информацию. URL указывает на правильный сервис. –

+0

Могу ли я предположить, что mexHttpBinding не может обеспечить webHttpBinding? –

ответ

1

Ссылка на справочную службу Visual Studio делает магию, поскольку службы SOAP предоставляют WSDL. Если вы создаете услугу REST, WSDL не будет работать, и он не будет работать. Когда вы переключаетесь на базовый HTTP, он работает, потому что это SOAP. Вы должны использовать HTTP-библиотеки, такие как HttpClient, чтобы разговаривать с конечной точкой REST.