如何为WCF服务在WSDL中设置EndpointReference?

问题描述 投票:0回答:1

我正在根据给定的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地址。

将提供任何帮助...

谢谢

wcf wsdl endpoint
1个回答
0
投票

这里是解决方法:

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接口,我们可以更新端点地址。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.