您正在查找的信息 - 要使用的綁定,傳輸和安全設置 - 包含在服務的元數據中。因此,如果您在服務上啓用服務元數據,則可以下載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
在foreach
循環是一個Uri
可以對陣你感興趣的人。
如果您只對http或https感興趣,那麼您也可以查看架構。
我什麼也沒有理解。我有WCF客戶端。用戶設置服務網址(我不知道這個網址是怎麼樣的,我甚至不知道服務的主機地址)。端點地址不是在配置中設置,而是在gui中設置。然後? – user876743