您正在查找的信息(要使用的绑定、传输和安全设置)包含在服务的元数据中。因此,如果您在服务上启用服务元数据,则可以下载 WSDL 并将其导入。
例如,在 C# 客户端应用程序中,您可以使用WsdlImporter.ImportAllEndpoints()
从服务元数据中读取端点配置,然后查找具有正确地址的端点配置:
var wc = new WebClient();
var metadata = new MetadataSet();
using (var stream = wc.OpenRead("http://yourserver/YourService.svc?singleWsdl"))
{
var sd = WS.ServiceDescription.Read(stream);
metadata.MetadataSections.Add(new MetadataSection("http://schemas.xmlsoap.org/wsdl/", "Test", sd));
}
var importer = new WsdlImporter(metadata);
var endpoints = importer.ImportAllEndpoints();
foreach (var endpoint in endpoints)
{
Console.WriteLine(endpoint.Address.Uri);
var client = new MyServiceClient(endpoint.Binding, endpoint.Address);
client.Hello();
}
你需要System.Web.Services
和System.ServiceModel
:
using System.Net;
using System.ServiceModel;
using System.ServiceModel.Description;
using WS = System.Web.Services.Description;
endpoint.Address
in that foreach
loop 是一个Uri
你可以匹配你感兴趣的那个。
如果您只对 http 或 https 感兴趣,那么您也可以只查看架构。