Я думаю, что сначала вы должны решить, что вы подразумеваете под "именем компьютера".
Как уже говорили другие, и, возможно, "традиционно" в Windows, вы бы использовали свойство Environment.MachineName
, чтобы получить имя компьютера , которое на самом деле является именем NetBIOS машина. Другим вариантом будет (полностью определенное) DNS-имя машины. Имейте в виду, однако, что на одной машине может быть несколько адаптеров / IP-адресов / что угодно и, следовательно, несколько DNS-имен.
Учитывая обработку потенциального InvalidOperationException
из Environment.MachineName
, я предлагаю подумать о том, что бы вы на самом деле сделали, если бы столкнулись с ним. Если есть что-то, что вы можете с этим сделать, вы можете и, конечно, должны это поймать.
Например, в некоторых моих кодах мне нужно получить имя компьютера (кстати, также в службе), но я использую его только для целей диагностики. Если произойдет сбой Environment.MachineName
, я просто использую некоторую строку "(unknown)"
в выходных данных диагностики (а также регистрирую ошибку один раз).
Если результат имеет жизненно важное значение для дальнейшей обработки, вы, вероятно, должны также поймать исключение, записать инцидент в журнал событий Windows и «умереть».