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

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...