【发布时间】:2011-01-16 06:28:56
【问题描述】:
我正在遵循 WSDL 优先(由我们的客户提供)方法来开发 WCF 服务,但是从我的 wcf 服务生成的 WSDL 与我们的客户提供给我的 WSDL 略有不同,并且由于这种不匹配,客户面临着困难打电话给我的服务。
客户提供的wsdl:
<wsdl:service name='CheckoutService'>
<wsdl:port binding='tns:CheckoutBinding' name='CheckoutServicePort'>
<soap:address location='place holder to service uri' />
</wsdl:port>
</wsdl:service>
从 wcf 服务生成的 WSDL:
<wsdl:service name="CheckoutService">
<wsdl:port binding="tns:CheckoutBinding" name="CheckoutBinging">
<soap:address location="place holder to service uri" />
</wsdl:port>
</wsdl:service>
而且,我的服务设置如下:
<endpoint name="CheckoutBinding" address="" binding="basicHttpBinding" bindingName="CheckoutServicePort" bindingConfiguration="basicHttpBinding" bindingNamespace="<<namespace>>" contract="<<contractname>>" />
我已使用 WSCF.Blue 从客户端提供的 wsdl 生成服务器存根代码,并对生成的代码进行了细微更改以发出与客户端提供的完全相同的 WSDL,但我不知道要更改什么在配置文件或生成的代码中生成与客户端提供的 wsdl 文件中相同的“wsdl:port/@name”。
根据url,服务端点名称属性映射到 wsdl:port/@name 和 wsdl:binding/@name。基于此,我的配置文件中的 endpoint/@name 属性值映射到 wsdl:port/@name 和 wsdl:binding/@name 但我希望将不同的名称映射到 wsdl:port/@name 和 wsdl:binding/ @name 属性。
请帮助我实现这一目标。
【问题讨论】: