Comment puis-je vérifier si une méthode d'un service Web fonctionne bien ou non? Je ne peux pas utiliser de ping. Je souhaite toujours vérifier que tout type de méthode soit appelé à partir du service Web par le client. Je sais que c'est difficile à généraliser, mais il devrait y avoir une manière. p>
8 Réponses :
Il suffit d'utiliser Essayez de capturer dans la méthode de votre service WebService et de votre journal à un fichier journal ou au journal des événements. Exemple:
[OperationContract] public bool isGUID(string input) { bool functionReturnValue = false; try { Guid guid; functionReturnValue = Guid.TryParse(input, guid); } catch (Exception ex) { Log.WriteServerErrorLog(ex); } return functionReturnValue; }
Bien que la journalisation est généralement une bonne idée, la journalisation que l'exception ne vous aide pas: Je souhaite toujours vérifier tout type de méthode appelé du service Web par le client i>. Espérons qu'il ne jette pas une exception à chaque méthode de son service Web;)
S'il peut écrire un journal d'exception, il peut écrire un journal insite les supports d'essai pour les statistiques, je ne vois aucun problème là-bas.
Vous pouvez essayer curl code>. C'est un outil Linux, devrait être là dans des cygwin aussi.
$ curl http://google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
Hmmm? Votre code vérifie-t-il une méthode de service Web? Je ne veux pas utiliser Curl ... et j'utilise Windows Platform :)
Comme je le vois, vous avez 2 options: p>
Si vous pouvez accéder au serveur, il s'exécutent, connectez chaque appel (et des exceptions lancées).
Lire le fichier journal avec un doux comme Beretail qui met à jour comme le fichier est écrit. < / p> li>
Si vous ne pouvez pas accéder au serveur, vous devez écrire le WebService qui enregistre à distance à un autre ordinateur que vous avez accès à. de
Les enregistreurs populaires ont cette fonctionnalité intégrée. ( log4net , ...) p> li >
ul>
Vous pouvez également utiliser le traçage. P>
J'utilise cette méthode et cela fonctionne bien:
public bool IsAddressAvailable(string address) { try { System.Net.WebClient client = new WebClient(); client.DownloadData(address); return true; } catch { return false; } }
Le seul moyen de savoir si une méthode de service Web fonctionne "Bien" consiste à appeler la méthode, puis à évaluer si le résultat est "bien". Si vous souhaitez conserver un enregistrement de "amende" vs fois, vous pouvez vous connecter le résultat de l'évaluation. P>
Il n'y a pas de moyen plus général de faire cela qui a du sens. Considérer: p>
La meilleure technique serait d'utiliser le traçage de la WCF (éventuellement avec le traçage au niveau du message) pour enregistrer ce qui arrive en réalité avec le service, le bien ou le mauvais. Un humain peut alors regarder les bûches pour voir s'ils sont "bien". P>
Vous pouvez écrire votre auto un peu d'outil ou de service Windows ou tout ce que vous avez besoin de voir ces 2 articles:
C #: Comment vérifier par programme un service Web est opérationnel? P>
PowerShell est de loin un moyen facile de «ping» un point d'extrémité Webservice.
Utilisez l'expression suivante: p> Voici une réponse à l'échec pour un port qui n'existe pas ou n'écoute pas; p> Voici un résultat de réussite si l'adresse / le port est écouté et accessible: p> ComputerName : 192.168.134.1
RemoteAddress : 192.168.134.1
RemotePort : 4407
InterfaceAlias : Ethernet0
SourceAddress : 192.168.134.1
TcpTestSucceeded : True
C'est en fait Wierd - vous voulez vérifier l'état du service, mais je ne veux pas ping-le .. signifie que je ne veux pas l'appeler.
@Alexanderb hmm ... ping ne fonctionne pas ici c'est y j'ai besoin d'une alternative :) et toute autre méthode à appeler et à vérifier que cette méthode de service Web serait appréciée.
@bebojoor Il y a une question similaire à ce sujet ici: Stackoverflow.com/Questtions/10088950/... Je vous recommande d'appeler périodiquement une méthode de service inoffue pour vérifier le service Web est" up "
Duplicaté possible de C #: Comment programmatiquement Vérifiez qu'un service Web est opérationnel?