【问题标题】:How to test subdomains on a development machine? abc.localhost如何在开发机器上测试子域? abc.localhost
【发布时间】:2009-05-16 17:36:43
【问题描述】:

我正在尝试开发一个包含多个子域的 asp.net 站点。我是一般网站的新手,尤其是 asp.net。但是,通配符子域似乎是通过 dns 条目和 Web 服务器配置的组合正确设置的——这不会在我的开发机器上发生。因此,我在我的 Windows hosts 文件中手动插入条目:

127.0.0.1  localhost
127.0.0.1  abc.localhost
127.0.0.1  xyz.localhost

但是,当我尝试询问 Request.Url 属性时,看不到子域。例如,如果我在浏览器中点击http://abc.localhost:1660/,我会从Request.Uri.ToString() 得到http://localhost:1660/abc 没了?!

我不知道为什么主机文件会这样工作,但是我可以使用其他方法将子域导入本地 Web 应用程序吗?谢谢大家。

请注意,我只使用内置的 asp.net 开发服务器,而不是完整的 iis 服务器。 (本周末我无法访问完整的 IIS,但我仍然想知道这是否有帮助。)

【问题讨论】:

  • 我认为这可能是使用内置网络服务器的一个因素。我不相信这会发生在一般的 IIS 服务器上。 (如果您运行的是 XP,您确实拥有它;您只需将您的网站设置为虚拟应用程序)。

标签: asp.net windows iis


【解决方案1】:

不知道标头,但我使用的一个鲜为人知的技巧是所有 127.* 地址都是 localhost 地址,而不仅仅是 127.0.0.1。您实际上可以运行一台服务器在 127.0.0.1 端口 80 上进行监听,而另一个 Web 服务器实例在 127.0.0.2 端口 80 上进行监听。那么您可以将 127.0.0.1 命名为 localhost,127.0.0.2 可以是 abc.localhost(或 abc.mydomain .com 以便您可以针对本地网络服务器测试真实的实时 URL)等。

【讨论】:

    【解决方案2】:

    我使用的是 Windows 7、IIS 7.5、VS 2008、SQL server 2005

    我能够在 localhost 上成功模拟子域购买将以下行放在 etc/hosts 中

    127.0.0.2   myapp.localhost.com
    

    并且,在 IIS 中,我设置了一个新网站,并对绑定部分进行了以下修改:

    Hostname = myapp.localhost.com 
    IP address = 127.0.0.2
    

    我还创建了一个新的应用程序池,但这不是必需的。您可能必须更改用于处理请求的身份验证用户。我的默认 IIS 用户有 SQL 连接权限错误。

    IIS>Application Pools>>Right Click on your pool>Advanced Settings>Identity = LocalSystem
    

    【讨论】:

      【解决方案3】:

      您可以使用 "Request.Headers["HOST"]" 获取带有完整子域的请求域。这是一个返回当前请求的子域的简单方法。此方法还假设您在域之后有一个“.COM”、“.NET”等,就像真正的 web 一样。因此,您需要更改 HOSTS 文件以包含“localhost.com”、“abc.localhost.com”等。

      public string subdomain()
      {
          string host = Request.Headers["HOST"];
          if (!string.IsNullOrEmpty(host))
          {
              var parts = host.Split('.');
              if (parts.Length > 2)
              {
                  return parts[0];
              }
          }
          return string.Empty;
      }
      

      我正在搜索这件事,而这篇文章实际上帮助我解决了这个问题: https://web.archive.org/web/20090813174916/http://blogs.securancy.com/post/ASPNET-MVC-Subdomain-Routing.aspx

      【讨论】:

        猜你喜欢
        • 2011-04-29
        • 2010-10-24
        • 1970-01-01
        • 1970-01-01
        • 2012-04-23
        • 2016-12-18
        • 1970-01-01
        • 2012-12-13
        • 2018-10-12
        相关资源
        最近更新 更多