当前位置:  开发笔记 > 编程语言 > 正文

在Windows服务中获取计算机名称?

如何解决《在Windows服务中获取计算机名称?》经验,为你挑选了2个好方法。

在.NET Windows服务(C#)中,如何获取计算机名称?

这是一个可靠的方法,还是应该将它包装在try/catch中?



1> Michael Hare..:

看看Environment类.那里有很多好东西,包括MachineName:

string CurrentMachineName = Environment.MachineName;

根据文档,这可能会生成InvalidOperationException,因此您需要了解这种可能性.但是,风险可能并不保证将其包装在try/catch中.


我们已经看到了零星的现场故障,因此如果您的代码路径很重要,您应该抓住IOE.

2> Christian.K..:

我想首先你必须通过"计算机名称"来决定你的意思.

正如其他人所说,并且可能"传统上"在Windows上,您将使用该Environment.MachineName属性获取计算机的名称,这实际上是计算机的 NetBIOS名称.另一种选择是机器的(完全限定的)DNS名称.但是要注意,单个机器实际上可以有多个适配器/ IP地址/任何内容,因此可以有多个DNS名称.

考虑到潜在的处理InvalidOperationExceptionEnvironment.MachineName,我建议想什么,如果你遇到它,你会怎么做.如果你能做些什么,你当然可以抓住它.

例如,在我的一些代码中,我需要获取计算机名称(顺便提一下也在服务中),但我只将它用于诊断目的.如果Environment.MachineName失败,我只是"(unknown)"在诊断输出中使用一些字符串(并且还记录一次错误).

如果结果对于您的进一步处理至关重要,您也应该捕获异常,将事件写入Windows事件日志并"死".


,这实际上是
NetBIOS名称.另一种选择是机器的(完全限定的)DNS名称.但是要注意,单个机器实际上可以有多个适配器/ IP地址/任何内容,因此可以有多个DNS名称.
推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有