2014-02-20 38 views
2

我想在ASP.NET应用程序中记录我的服务器名称,我使用多服务器和负载平衡,因此我需要记录服务器名称。在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 

回答

0

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

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

您可以在此设置后阅读:

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

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

0

我知道这是一个老问题。我正在寻找同一问题的答案 获取确切的服务器名称
所以我想回答这个没有答案问题。 这是我的解决方案。

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

这样你会得到确切的服务器名称

+0

看起来,这将使你**访问http // subdomain.host.tld [:端口] **实际。例如: 'HttpContext.Current.Request.Url.ToString().Split('/') {string [4]} [0]:“http:” [1]:“” [2]: “localhost:58905” [3]:“default.aspx” – fortboise