2009-04-17 2 views
2

Я создаю службу wcf. Когда я добавляю услугу в качестве «веб-ссылки» на мой веб-сайт (я делаю это с помощью URL-адреса: http://localhost/myservice.svc?wsdl), а затем вызываю веб-методы, выставленные службой, я получаю исключение «Операция затухает». Однако, когда я добавляю службу в качестве «Справочника службы» на сайт, звонки работают нормально.Как открыть службу wcf для разных клиентов

Причина РМКО добавив его в качестве веб-ссылка, я хочу подвергать услугу ФОС для всех клиентов, таких как Java, PHP .....

Я посмотрел на статью в «http://blogs.msdn.com/juveriak/archive/2008/03/18/wcf-proxy-that-works-with-different-clients.aspx», но Я не пытался преобразовать wsdl в типизированный прокси-сервер, как это предлагается в этой статье.

Любые идеи о том, почему я получаю ошибку при использовании в качестве веб-ссылки?

ответ

0

Возможно, вы используете WsHttpBinding, а не . Веб-службы .NET 2.0 не могут использовать службу WsHttpBinding.

Проблема одна из протоколов. Протоколы веб-сервисов постоянно меняются, добавляются безопасность, федеративная идентификация и т. Д. По мере их изменения более старые технологии не могут взаимодействовать с использованием более новых протоколов.

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

Что касается управления версиями, то класс MessageVersion является хорошей отправной точкой.

Edit: Я должен отметить, что вам нужно использовать MessageVersion как часть пользовательских TextMessageEncodingBindingElement связывания, например, так:

<bindings> 
    <customBinding> 
     <binding name="MyBinding"> 
      <textMessageEncoding messageVersion="Soap11WSAddressing10"/> 
      <httpTransport/> 
     </binding> 
    </customBinding> 
</bindings> 
+0

Как MessageVersion способ сообщения о версии? Это говорит вам, является ли это SOAP 1.1 или SOAP 1.2 - это не дает вам возможности указать «это мой сервис v1» или «мой сервис v2». –

+1

Я добавил раздел «BasicHttpBinding» в службу wcf. – Developer

+0

@Nick: дайте мне знать, как это происходит. – Randolpho