【问题标题】:How to get DNS name in load balancing environment?如何在负载均衡环境中获取 DNS 名称?
【发布时间】:2011-03-09 16:18:44
【问题描述】:

我有 4 台服务器参与负载平衡环境。每台服务器都承载相同的 ASP.NET 应用程序。 无论底层服务器如何,我都想获取 DNS 名称。 以下哪一项会给出正确答案?

Request.Url.Host
Environment.MachineName
System.Net.Dns.GetHostName() 

感谢您的建议!

【问题讨论】:

  • 你想要的DNS名称是什么?每台机器?负载均衡器?客户?
  • 我想我用错了术语。我想要应用程序的 FQDN。例如,www.myportal.com。

标签: c# .net asp.net dns .net-3.0


【解决方案1】:

你可以试试Request.Url.GetLeftPart(UriPartial.Authority)。因此,例如,如果请求 url 是 http://www.contoso.com/index.htm?date=today,这将返回 http://www.contoso.com

【讨论】:

  • +1。请注意,如果您通过服务器名称(如http://myserver044/mySite/myPage 而不是http://www.myportal.com/mySite/myPage)访问您的站点,您仍然可能会得到错误的结果。根据您的需要,最好只在配置中提供该名称(即拒绝来自碰巧指向同一服务器的错误 URL 的请求)。
  • @Darin - 如果地址为www.domain.com 的负载均衡器将请求转发到A.domain.comB.domain.com,将获得Request.Url.GetLeftPart 潜水www.domain.com 或当前正在执行的服务器的url?
  • 根据rajeeshcv.com/post/details/40/stay-away-from-request-url,如果是负载均衡,可以得到执行服务器的url
【解决方案2】:

第一个。它实际上是唯一一个甚至模糊相关的。

  • Environment.MachineName 可以是您想要的任何名称 - 没有人说必须通过 DNS 公开。尤其是在托管环境中。
  • System.Net.Dns.GetHostName - 将返回机器的主机名,不知道如何。

Anyhjoe,我都不是用来访问机器的。这几乎只是 Url.Host 部分,因为这是通过请求来的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 2020-12-18
    • 2019-01-24
    • 2017-09-25
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多