Um zu Überprüfen ob ein oder mehrere WCF- / WebServices erreichbar sind, muss man die einzelnen Endpunkte aus der app.config auslesen. Die Adresse vom jeweiligen Endpoint, kann man dann via Webrequest prüfen und behandeln.
Folgender Lösungsansatz könnte dazu verwendet werden:
using System.Configuration; using System.ServiceModel.Configuration; using System.Net;
Zuerst finden wir unserer ClientSection in der app.config mit:
var clientSection = (ClientSection)ConfigurationManager.GetSection("system.serviceModel/client");
Mit diesem Ergebnis können wir dann eine ChannelEndpointElementCollection instanzieren:
var endpointCollection = (ChannelEndpointElementCollection)clientSection.ElementInformation.Properties[string.Empty].Value;
Die ChannelEndpointElementCollection iterieren wir, prüfen per Webrequest die Elementadresse und können die Ergebnisse je nach Anforderung weiter verarbeiten.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | foreach (ChannelEndpointElement endpointElement in endpointCollection) { try { WebRequest request = WebRequest.Create(endpointElement.Address); request.GetResponse(); //code wenn Endpoint erreichbar } catch (Exception) { //code wenn Endpoint nicht erreichbar } } |
Viel Spass beim entwickeln : )







