Dans un service Windows .NET (C#), comment puis-je obtenir le nom de l'ordinateur?Obtenir le nom de l'ordinateur dans un service Windows?
Est-ce une méthode fiable, ou devrais-je l'emballer dans un essai/catch?
Dans un service Windows .NET (C#), comment puis-je obtenir le nom de l'ordinateur?Obtenir le nom de l'ordinateur dans un service Windows?
Est-ce une méthode fiable, ou devrais-je l'emballer dans un essai/catch?
Regardez le Environment class. Il sont beaucoup de belles choses là-dedans, y compris le MachineName:
string CurrentMachineName = Environment.MachineName;
Selon les documents, ce qui pourrait générer un InvalidOperationException vous aurez donc besoin d'être au courant de cette possibilité. Le risque ne justifie probablement pas de l'emballer dans un essai/catch, cependant.
Nous avons vu des échecs sporadiques sur le terrain, vous devriez donc attraper l'E/S si votre chemin de code est critique. – JBRWilkinson
Je pense d'abord que vous devez décider ce que vous entendez par "nom d'ordinateur".
Comme d'autres l'ont dit, et peut-être « traditionnellement » sur les fenêtres, vous pouvez utiliser la propriété Environment.MachineName
pour obtenir le nom de l'ordinateur , qui est en fait le nom NetBIOS de la machine. Une autre option serait le nom DNS (entièrement qualifié) de la machine. Sachez cependant qu'une seule machine pourrait en réalité avoir plusieurs adaptateurs/adresses IP/peu importe et donc plusieurs noms DNS. Compte tenu de la gestion du potentiel de Environment.MachineName
, je suggère de penser à ce que vous feriez réellement si vous le rencontrez. S'il y a quelque chose que vous pouvez faire à ce sujet, vous pouvez et bien sûr l'attraper. Par exemple, dans certains de mes codes, j'ai besoin d'obtenir le nom de l'ordinateur (accessoirement dans un service), mais je ne l'utilise qu'à des fins de diagnostic. Si le Environment.MachineName
échoue, j'utilise juste une chaîne de "(unknown)"
dans la sortie de diagnostic (et enregistre également une erreur une fois).
Si le résultat est vital pour votre traitement ultérieur, vous devriez probablement également attraper l'exception, écrire l'incident dans le journal des événements Windows et "mourir".
Upvote pour la réponse détaillée et les conseils – AFract
Copie possible de [Comment obtenir le nom de l'ordinateur dans .NET] (http://stackoverflow.com/questions/1768198/how-do-i-get-the-computer-name-in-net) –