使WCF 4 WSDL看起来像Web Service WSDL?

时间:2010-11-15 21:42:14

标签: wcf web-services priority-queue

我有一个古老的Web服务客户端需要与我的WCF 4.0服务进行通信。客户端是另一家不会改变的公司中的旧系统。我们有新的客户端需要WCF功能,所以我们拥有它,但现在需要更多的工作来支持旧客户端。

我使用Attributes装饰了WCF服务的几个部分,并且许多发出的WSDL看起来像古代客户端用来调用的Web服务。我还有一些看起来不像传统的东西。我在哪里可以看到新服务器看起来像旧的?

旧的(Web服务)系统具有:

<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 :(得分:0)

创建一个处理HttpModule的{​​{1}},使用该BeginRequest在WSDL被要求(Request["WSDL"] != null)时附加响应过滤器。响应过滤器将是您编写的继承自MemoryStream的类,它将适当地更改响应。

可以在http://www.4guysfromrolla.com/articles/120308-1.aspx

找到用于编写响应过滤器的良好参考