Как выставить сервис wcf разным клиентам - PullRequest
2 голосов
/ 17 апреля 2009

Я создаю службу 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 в типизированный прокси, как предлагается в этой статье.

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

Ответы [ 2 ]

2 голосов
/ 18 апреля 2009

Нашел отличную статью, которая отвечает на мой вопрос:

http://www.keithelder.net/blog/archive/2008/01/17/Exposing-a-WCF-Service-With-Multiple-Bindings-and-Endpoints.aspx

0 голосов
/ 17 апреля 2009

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

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

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

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

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

<bindings>
    <customBinding>
        <binding name="MyBinding">
            <textMessageEncoding messageVersion="Soap11WSAddressing10"/>
            <httpTransport/>
        </binding>
    </customBinding>
</bindings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...