我正在根据给定的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地址。
将提供任何帮助...
谢谢
这里是解决方法:
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接口,我们可以更新端点地址。
谢谢