8

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

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

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

任何想法?

或任何其他方式?

System.Environment.MachineName
Server.MachineName
System.Net.Dns.GetHostName()

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

Request.ServerVariables["SERVER_NAME"]
System.Net.Dns.GetHostEntry(Request.ServerVariables("SERVER_NAME")).HostName
System.Net.Dns.GetHostEntry(Request.ServerVariables("LOCAL_ADDR")).HostName
4

2 回答 2

1

我知道这是一个老问题。我正在寻找相同问题的答案;这是我的解决方案。

string url = HttpContext.Current.Request.Url.ToString();
string[] tempArray = url.Split('/');
string serverName = tempArray[0] + "/" + tempArray[1] + "/" + tempArray[2] ;

这样,您将获得确切的服务器名称。

于 2015-09-11T14:23:28.840 回答
-4

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

<appSettings>
  <add key="ServerName" value="Server_1" />
</appSettings>

您可以稍后阅读此设置:

string serverName = ConfigurationSettings.AppSettings["ServerName"];

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

于 2014-02-20T07:35:03.003 回答