0
我有一個WCF服務。它使用配置文件中的設置。 它包含一些通過http,net.tcp等工作的子服務。 我想創建一個方法,它將返回所有配置的端點url。 它將用於提供客戶端應用程序接收url字符串的可能性。如何枚舉端點url?
我如何在WCF服務中做到這一點?
我有一個WCF服務。它使用配置文件中的設置。 它包含一些通過http,net.tcp等工作的子服務。 我想創建一個方法,它將返回所有配置的端點url。 它將用於提供客戶端應用程序接收url字符串的可能性。如何枚舉端點url?
我如何在WCF服務中做到這一點?
你可以嘗試這樣的事情:
private static List<Uri> GetClientsInfo()
{
var adressList = new List<Uri>();
var clientSection = (ConfigurationManager.GetSection("system.serviceModel/client") as ClientSection);
if (clientSection != null)
{
foreach (ChannelEndpointElement endPoint in clientSection.Endpoints)
{
adressList.Add(endPoint.Address);
}
}
return adressList;
}
您也可以使用「WebConfigurationManager」,而不是「ConfigurationManager中」(取決於您的應用型,更在這裏What's the difference between the WebConfigurationManager and the ConfigurationManager?)
爲什麼沒有客戶端應用程序只是獲取服務元數據? –
WCF服務內部有多個服務。另外,一些服務的設定很少(可能是http,net.tcp等)。獲取服務元數據需要知道其URL。我想提供一個RESTful方法,客戶端應用程序可以查詢並獲取所有端點地址,然後執行所需的操作。這是客戶端配置實用程序。至少它會顯示地址。 – Oleg
*獲取服務元數據需要知道其URL。* - 暴露元數據的關鍵點是您希望其他人知道該URL。 –