asp.net – 如何测试开发机器上的子域? abc.localhost

前端之家收集整理的这篇文章主要介绍了asp.net – 如何测试开发机器上的子域? abc.localhost前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试开发一个具有多个子域的asp.net站点。我对网站很新,特别是asp.net。然而,似乎通配符子域可以通过dns条目和Web服务器配置的组合进行适当的设置,这在我的开发机器上不会发生。因此我手动在我的Windows主机文件中插入条目:
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,但我仍然想知道是否有帮助。)

解决方法

您可以通过使用“Request.Headers [”HOST“]”获得所需域的子域。这是一个返回当前请求的子域的简单方法。这个方法也假设你的域名就像真正的网页一样,你有一个“.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

猜你在找的asp.Net相关文章