当抛出异常时,我们记录它。但是,我们无法检索服务器名称或 IP 地址。不确定这是否是检索它的正确方法。
Log.ServerName = HttpContext.Current.Request.ServerVariables["LOCAL_ADDR"];
Log.ServerIP = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];
这似乎不起作用。它返回 'localhost' 和 ::1 作为 IP 地址。
根据您的评论,您似乎想要记录本地服务器名称和 IP 地址。一种解决方案是使用Dns.GetHostName和Dns.GetHostAddresses。
如果您从 IDE 中的本地服务器对其进行测试,它似乎可以正常工作。
您是否在运行 Web 服务器的同一台机器上测试了应用程序?如果是这样,那么 IPV6 环回地址和 localhost 是变量的预期结果。如果您从另一台机器发送请求,那么值应该是您所期望的。
或者,HTTPRequest.Url 属性将包含主机的客户端身份,如果您预期主机应用程序有多个别名,这可能会更有用。