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