代码之家  ›  专栏  ›  技术社区  ›  Josh

如何在开发机器上测试子域?abc.localhost

  •  20
  • Josh  · 技术社区  · 17 年前

    :

    127.0.0.1  localhost
    127.0.0.1  abc.localhost
    127.0.0.1  xyz.localhost
    

    http://abc.localhost:1660/ http://localhost:1660/ Request.Uri.ToString() abc 刚刚走了?!

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

    3 回复  |  直到 17 年前
        1
  •  9
  •   p.campbell    11 年前

        2
  •  11
  •   Joe White    17 年前

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

    通过在etc/hosts中添加以下行,我能够在localhost上成功模拟子域

    127.0.0.2   myapp.localhost.com
    

    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
  •  9
  •   Vaibhav Garg    16 年前

    您可以通过使用“ “。这是一个返回当前请求的子域的简单方法。此方法还假设您有一个”。COM“,”。NET等。因此,您需要将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

    推荐文章