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