我正在遵循WSDL-first(由客户提供)的方法来开发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”。
根据这个网址,serviceendpoint名称属性映射到wsdl:port/@name和wsdl:binding/@name。基于此,在我的配置文件中,endpoint/@name属性值映射到wsdl:port/@name和wsdl:binding/@name,但我希望不同的名称映射到wsdl:port/@name和wsdl:binding/@name属性。请帮我实现这个要求。