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

-4

私は常にシンプルでフェイルセーフなソリューションを好みます。アプリケーション設定をアプリケーション web.config に追加し、各サーバーに必要な名前を手動で入力することをお勧めします。

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

この設定は後で読むことができます。

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

このようにして、サーバー名を完全に手動で制御できます。

于 2014-02-20T07:35:03.003 に答える