Сделать WCF 4 WSDL похожим на веб-сервис WSDL? - PullRequest
3 голосов
/ 16 ноября 2010

У меня есть древний клиент веб-службы, который должен общаться с моей службой WCF 4.0. Клиент - это большая старая система в другой компании, которая не изменится. У нас есть новые клиенты, которым нужна функциональность WCF, поэтому у нас она есть, но теперь требуется еще немного работы для поддержки старого клиента.

Я украсил несколько частей службы WCF Атрибутами, и большая часть отправленного WSDL выглядит как веб-служба, которую раньше вызывал древний клиент. У меня есть еще несколько частей, которые не похожи на старые вещи. Где можно посмотреть, чтобы новый сервер выглядел как старый?

Старая система (веб-сервис) имеет:

<wsdl:portType name="QueueServiceSoap">
<wsdl:operation name="SubmitRequest">
<wsdl:input message="tns:SubmitRequestSoapIn"/>
<wsdl:output message="tns:SubmitRequestSoapOut"/>
</wsdl:operation>
</wsdl:portType>

Новая система (Служба WCF) имеет:

<wsdl:portType name="QueueServiceSoap">
<wsdl:operation name="SubmitRequest">
<wsdl:input wsaw:Action="https://test.com/SubmitRequest" message="tns:QueueServiceSoap_SubmitRequest_InputMessage"/>
<wsdl:output wsaw:Action="https://test.com/QueueServiceSoap/SubmitRequestResponse" message="tns:QueueServiceSoap_SubmitRequest_OutputMessage"/>
</wsdl:operation>
</wsdl:portType>

Мне нужно изменить службу WCF, чтобы она выглядела как служба WS ... Справка?

Спасибо!

1 Ответ

0 голосов
/ 19 января 2011

Создайте HttpModule, который обрабатывает BeginRequest, используя его для подключения фильтра ответов, когда WSDL запрашивается для (Request["WSDL"] != null).Фильтр ответов будет тем классом, который вы пишете, который наследует от MemoryStream и который соответствующим образом изменит ответ.

Добавить хорошую ссылку для написания фильтра ответов можно найти по адресу http://www.4guysfromrolla.com/articles/120308-1.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...