探している情報 (使用するバインディング、トランスポート、およびセキュリティ設定) は、サービスのメタデータに含まれています。そのため、サービスでサービス メタデータを有効にすると、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 のみに関心がある場合は、スキーマを確認することもできます。