子域名如何工作?

时间:2015-06-05 19:59:20

标签: c# asp.net-mvc-4 iis subdomain multi-tenant

我在端口80的IIS中设置了一个ASP.net MVC应用程序。该网站针对任何子域进行解析。像dev.localhost,test.localhost等。不,我没有在我的机器上设置任何这些子域。我没有主机文件条目,除了默认值,没有主机头。从我在线阅读的所有内容来看,您需要配置一个子域,您需要执行主机文件输入并添加主机头。没有我做任何事情,这是如何工作的?我是否错误地设置了我的网站?

3 个答案:

答案 0 :(得分:0)

我的直觉(虽然我没有为ASP.Net MVC验证这一点)是它为你的应用程序“保留”了网址http://+:80/ - 这意味着端口80上解析为localhost的任何域名(* .localhost,127.0.0.1,hosts file entires等)将被路由(由操作系统和IIS)到你的ASP.Net进程,以便它处理。

有几种方法可以验证这一点:

  • 您可以在IIS管理员面板中检查(如果您没有使用IISExpress)它已捕获的URL(在应用程序的“站点绑定”下)。 “所有未分配的”将(我认为)将所有请求路由到该站点 - 无论主机/子域名 - 到您的站点;
  • 或者您可以使用netsh查找保留的URL:

netsh命令示例:

$ netsh http show urlacl

答案 1 :(得分:0)

我猜你有一个没有http绑定主机名的网站,所以所有的请求都是这样的。如果您在主机名中填写“localhost”,则除非您在主机中添加条目,否则它不应再适用于子域。

答案 2 :(得分:0)

子域名只会像基于DNS解析的主域一样路由到端口80。如果IIS中没有多个绑定,则主绑定将为所有请求提供服务。