Я придерживаюсь подхода WSDL-first (предоставляемого нашим клиентом) для разработки службы WCF, но WSDL, сгенерированные из моей службы wcf, немного отличаются от 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>
WSDL, сгенерированный из службы wcf:
<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: port / @ name», что и в файле wsdl, предоставленном клиентом.
Согласно этому url свойство имени точки обслуживания сопоставляется с wsdl: port / @ name и wsdl: binding / @ name. Исходя из этого, значение атрибута конечной точки / @ name в моем конфигурационном файле отображается на wsdl: port / @ name и wsdl: binding / @ name, но я хочу, чтобы разные имена отображались на wsdl: port / @ name и wsdl: binding / атрибуты @name.
Пожалуйста, помогите мне в достижении этого.