C# 解析本地主机上的子域

C# 解析本地主机上的子域,c#,debugging,asp.net-mvc-3,subdomain,C#,Debugging,Asp.net Mvc 3,Subdomain,设置 我正在使用ASP.NET MVC3构建一个应用程序,该应用程序使用子域,我在我的主机文件中添加了以下内容:127.0.0.1 students.localhost 这一切似乎都很好,当我调试时,浏览器会打开localhost:{PORT},我可以浏览网站,我也可以打开:students.localhost:{PORT},网站运行得非常好 如果您想知道,我使用:代码来实现MVC和子域中的路由要求 问题 我需要找出用户访问站点的子域。如果我进行调试,则返回我的子域:http://student

设置

我正在使用ASP.NET MVC3构建一个应用程序,该应用程序使用子域,我在我的主机文件中添加了以下内容:
127.0.0.1 students.localhost

这一切似乎都很好,当我调试时,浏览器会打开
localhost:{PORT}
,我可以浏览网站,我也可以打开:
students.localhost:{PORT}
,网站运行得非常好

如果您想知道,我使用:代码来实现MVC和子域中的路由要求

问题

我需要找出用户访问站点的子域。如果我进行调试,则返回我的子域:
http://students.localhost:{PORT}
请求。Url为:
http://localhost:{PORT}
,由于某种原因,Deubuger(或ASP.NET开发服务器)没有接收
学生

请不要进入TLD讨论试图解释子域到底是什么,我只需要
http://
之后的第一个字符串。在本地和生产中,这将是我的子域

先发制人


更新: 我通过使用:
Request.Headers[“host”]
获得了想要的结果,找出Request.Url不包含
students
子字符串的原因会很有趣

new System.Uri(Request.RawUrl).Host

我认为这将是真正的主机名。

简单的方法是在主机中放置一个完全限定的域名。如果生产站点是subdomain.domain.com,我喜欢使用subdomain.domain.local并将其映射到127.0.0.1

Request.RawUrl=
/
,我在请求中找不到类似于
学生的东西。嘿,当我在本地检查Request.Url.Host时,我得到了“学生”子字符串。我并没有做任何特殊的事情来实现这一点,所以我不确定为什么Request.Url为空。我会继续到处闲逛。