在 ASP.NET 中获取服务器名称的不同方法

Sae*_*ade 8 asp.net .net-4.0 server-name

我想在 ASP.NET 应用程序中记录我的服务器名称,我使用多服务器和负载平衡,所以我需要记录服务器名称。

但是这些获取服务器名称的方式有什么区别呢?

哪个是真实的或更好的记录?

任何的想法?

或任何其他方式?

System.Environment.MachineName
Server.MachineName
System.Net.Dns.GetHostName()
Run Code Online (Sandbox Code Playgroud)

还有另一种方法,但并不总是返回正确的服务器名称:

Request.ServerVariables["SERVER_NAME"]
System.Net.Dns.GetHostEntry(Request.ServerVariables("SERVER_NAME")).HostName
System.Net.Dns.GetHostEntry(Request.ServerVariables("LOCAL_ADDR")).HostName
Run Code Online (Sandbox Code Playgroud)

小智 -5

我总是更喜欢简单且故障安全的解决方案。我建议向应用程序 web.config 添加应用程序设置,并手动为每个服务器填充所需的名称。

<appSettings>
  <add key="ServerName" value="Server_1" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

您可以稍后阅读此设置:

string serverName = ConfigurationSettings.AppSettings["ServerName"];
Run Code Online (Sandbox Code Playgroud)

这样您将获得对服务器名称的完全手动控制。