WCF: comment obtenir l'adresse IP ou le nom du serveur
J'ai un service WCF qui est hébergé par les services IIS sur plusieurs serveurs web. J'ai une méthode de journalisation qui enregistre les appels à la base de données et je voudrais connecter le serveur auquel l'appel est en cours d'exécution sur.
Personne ne sait comment obtenir le nom du serveur hôte ou adresse IP de la WCF appel est en cours d'exécution sur?
source d'informationauteur Kevin Jensen
Vous devez vous connecter pour publier un commentaire.
Utiliser Le Dns.GetHostName(), parce que c'est beaucoup mieux pour obtenir le nom de l'ordinateur que l'IP de l'hôte. Considérer le cas où votre ordinateur hôte avoir plus d'une adresse IP, a cartes réseaux virtuelles (VMWare).
C'est ce qui a fonctionné pour nous. Assurez-vous que vous avez une référence à System.ServiceModel. Puis mettre en œuvre le code suivant dans votre méthode de service:
Dns.GetHostName() est ce que j'utilise le plus.
ne axactly que
Nom d'hôte DNS ne fonctionne pas parce que beaucoup de serveurs ont de multiples noms d'hôte et vous ne savez pas lesquelles le service a été appelé. IIRC, IIS peut appeler différents services web basé sur le nom d'hôte spécifié faire l'affaire pour le pire. à l'aide de .Le courant est très bien si vous n'êtes pas exécuter une seule instance, auquel cas on n'a pas toujours avoir une valeur non nulle objet de contexte, ce qui est mon cas pour l'ensemble de la ci-dessus. Si quelqu'un a quelque chose de plus solide, merci de partager 🙂
Vous pouvez utiliser le code suivant pour obtenir le courant de la base de l'adresse du serveur(hôte).