【问题标题】:Get IIS binding used for current request获取用于当前请求的 IIS 绑定
【发布时间】:2019-09-03 23:22:03
【问题描述】:

我正在托管一个 ASP.NET MVC Web 应用程序,并且我有一个具有两种不同配置的 IIS。

配置1: 配置了两个网站。两者都指向同一个应用程序目录,并通过 HTTP 进行不同的绑定:

  • App1 绑定 *:8080
  • App2 绑定 *:8081

配置2: 服务器分配了两个不同的 IP 地址。配置了两个网站。两者都指向同一个应用程序目录,并通过 HTTP 进行不同的绑定:

  • App1 绑定 10.0.0.1:80
  • App2 绑定 10.0.0.2:80

现在我可以通过不同的 IP 或端口调用同一个应用程序。有没有办法在代码中确定哪个绑定已用于特定请求?

【问题讨论】:

  • 在请求中使用Host: 标头,也可以使用Request.Url.Port

标签: asp.net asp.net-mvc iis


【解决方案1】:

据我所知,如果您想使用 C# http 客户端获取服务器的 IP。我建议您可以考虑使用以下代码:

Request.ServerVariables["LOCAL_ADDR"];

据 MSFT docs:

返回请求进入的服务器地址。这在计算机上可能有多个 IP 地址绑定到计算机上很重要,并且您想找出请求使用的地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2019-05-19
    • 1970-01-01
    • 2018-01-09
    • 2019-03-20
    • 2021-05-29
    相关资源
    最近更新 更多