首页 > 解决方案 > 如何在 WSDL 中为 WCF 服务设置 EndpointReference?

问题描述

我正在从给定的 WSDL 文件创建 WCF 服务。这里根据 WSDL,我想在 EndpointReference 地址中设置 urn 地址,如下所示

WSDL 示例:

<wsdl:service name="MyCustomService">
    <wsdl:port name="SecurePort" binding="tns:Secure">
        <soap12:address location="https://localhost:8453/MyService/Service.svc" />
        <wsa10:EndpointReference>
            **<wsa10:Address>urn:aaa.cc:abc:names:pqr:ddd</wsa10:Address>**
        </wsa10:EndpointReference>
    </wsdl:port>
    <wsdl:port name="UnSecurePort" binding="tns:Unsecure">
        <soap12:address location="http://localhost:8080/MyService/Service.svc" />
        <wsa10:EndpointReference>
            **<wsa10:Address>urn:aaa.cc:abc:names:pqr:ddd</wsa10:Address>**
        </wsa10:EndpointReference>
    </wsdl:port>

我见过一种叫做 IWsdlExportExtension 的东西。但仍在检查如何访问端点元数据并设置 urn 地址。

任何帮助都会被挪用...

谢谢你

标签: wcfwsdlendpoint

解决方案


这是解决方案:

public void ExportEndpoint(WsdlExporter exporter, WsdlEndpointConversionContext context){
EndpointAddress address = context.Endpoint.Address;

var newAbsoluteUri = new Uri("urn:aaa.cc:abc:names:pqr:ddd");

context.Endpoint.Address = new EndpointAddress(newAbsoluteUri,
    address.Identity, address.Headers, address.GetReaderAtMetadata(),
    address.GetReaderAtExtensions());}

使用 IWsdlExportExtension 接口,我们可以更新 Endpoint 地址。

谢谢你


推荐阅读