2010-06-26 10 views
1

Je construis un outil pour valider si tous les points de contact (chaînes de connexion DB, serveurs de messagerie, services Web, services WCF, etc.) utilisés par un ensemble d'applications sont accessibles après une migration de récupération après sinistre vers un emplacement hors site.Déterminer si une adresse de point de terminaison WCF net.tcp est valide

L'outil doit vérifier si une adresse de noeud final net.tcp donnée est valide et accessible, sans générer de proxy client, et sans tenir compte de la liaison ou du comportement utilisé par le client WCF réel. L'outil n'a besoin d'appeler aucune méthode de service et sera uniquement exécuté par les administrateurs système à l'aide d'informations d'identification de domaine hautement confidentielles.

Il est facile de le faire pour les services basés sur HTTP:

hwrRequest = (HttpWebRequest)WebRequest.Create(i_WebServiceUrl); 
hwrRequest.Timeout = i_nTimeoutSeconds * 1000; 
hwrResponse = (HttpWebResponse)hwrRequest.GetResponse(); 
if (hwrResponse.StatusCode == HttpStatusCode.OK) 
: 
: 

Y at-il une technique équivalente pour les services de WCF?

Répondre

0

Tout d'abord, pourquoi pensez-vous que votre code WebRequest fonctionnera? Si le service ne génère pas de métadonnées ou ne répond pas à un verbe HTTP GET, votre réponse expirera.

Je recommande de créer un contrat de service administratif et de l'implémenter dans tous vos services. Vous pouvez simplement ajouter une méthode Ping() à ce contrat, mais vous pouvez également décider d'ajouter d'autres méthodes.

+0

Merci pour la réponse John. Oui, je souhaite que nous puissions avoir un contrat d'administration avec une méthode Ping() dans chaque service Web/WCF, mais il existe des dizaines de services d'âges différents, et ce serait une tâche majeure. Tous les nouveaux services ont des méthodes Ping() et PingDependencies(). J'espérais que WCF avait une fonction de ping primitive pour s'assurer qu'un point final était valide et vivant. En outre, le code WebRequest ci-dessus fonctionne pour tous nos services WCF basés sur HTTP. Il renvoie la page standard "Vous avez créé un service". Tous les services fournissent des métadonnées afin qu'ils puissent être testés en utilisant le client de test WCF. –

Questions connexes