En un servicio Windows .NET (C#), ¿cómo puedo obtener el nombre de la computadora?Obtener el nombre de la computadora en un servicio de Windows?
¿Es este un método confiable, o debería envolverlo en un try/catch?
En un servicio Windows .NET (C#), ¿cómo puedo obtener el nombre de la computadora?Obtener el nombre de la computadora en un servicio de Windows?
¿Es este un método confiable, o debería envolverlo en un try/catch?
Mire el Environment class. Todavía un montón de cosas buenas en ese país, incluyendo el MachineName:
string CurrentMachineName = Environment.MachineName;
De acuerdo con los documentos, esto podría generar una InvalidOperationException por lo que tendrá que ser conscientes de esta posibilidad. Sin embargo, el riesgo probablemente no garantice su envoltura en una prueba/captura.
Hemos visto fallas esporádicas en el campo, por lo que debe capturar el IOE si la ruta del código es crítica. – JBRWilkinson
Creo que primero tienes que decidir a qué te refieres con "nombre de computadora".
Como otros han dicho, y, posiblemente, "tradicionalmente" en las ventanas, se utiliza la propiedad Environment.MachineName
para obtener el nombre del equipo , que es en realidad el nombre de NetBIOS de la máquina. Otra opción sería el nombre DNS (totalmente calificado) de la máquina. Tenga en cuenta, sin embargo, que una sola máquina podría tener múltiples adaptadores/direcciones IP/lo que sea y, por lo tanto, múltiples nombres DNS.
Teniendo en cuenta el manejo del potencial InvalidOperationException
de Environment.MachineName
, sugiero que piense qué haría si realmente lo encuentra. Si hay algo que puede hacer al respecto, puede, y por supuesto, atraparlo.
Por ejemplo, en algunos de mis códigos, necesito obtener el nombre de la computadora (por cierto, también en un servicio), pero solo lo uso para fines de diagnóstico. Si el Environment.MachineName
falla, solo uso alguna cadena "(unknown)"
en la salida de diagnóstico (y también registro un error una vez).
Si el resultado es vital para su posterior procesamiento, probablemente también tenga en cuenta la excepción, escriba el incidente en el registro de eventos de Windows y "muera".
Votación a favor por la respuesta detallada y los consejos – AFract
Posible duplicado de [¿Cómo obtengo el nombre de la computadora en .NET] (http://stackoverflow.com/questions/1768198/how-do-i-get-the-computer-name-in-net) –