C# 根据MVC4中的HTTP_主机加载路由

C# 根据MVC4中的HTTP_主机加载路由,c#,iis-7,asp.net-mvc-routing,C#,Iis 7,Asp.net Mvc Routing,我有一个多租户MVC4网站,我想根据传入主机和域名设置路由表,例如www.domain1.com、www.domain2.com和www.domain3.co.uk可以根据主机和域anem将一个或多个附加值附加到路由表中 DNS服务器已经设置了许多不同的区域和主机,我使用IIS7作为“自定义web服务器”,而不是使用Visual Studio 2012 Development server,以便在请求变量中获得可用的正确HTTP_主机值 IIS7的问题是,如果您尝试在RegisterRoutes

我有一个多租户MVC4网站,我想根据传入主机和域名设置路由表,例如www.domain1.com、www.domain2.com和www.domain3.co.uk可以根据主机和域anem将一个或多个附加值附加到路由表中

DNS服务器已经设置了许多不同的区域和主机,我使用IIS7作为“自定义web服务器”,而不是使用Visual Studio 2012 Development server,以便在请求变量中获得可用的正确HTTP_主机值

IIS7的问题是,如果您尝试在RegisterRoutes方法中调用HttpContext.Current.Request.ServerVariables[HTTP_HOST]的值,则该值与HttpContext.Current.Request.ServerVariables[HTTP_HOST]的值不可用,在该方法中完成了所有其他路由映射

我需要做的主要事情是在请求管道中的某个点确定最终将在HTTP_主机服务器变量中结束的值。在使用该值之前,需要存储该值并适当更新路由表

它是否需要Http模块、Http处理程序、操作过滤器或类似的东西?或者MVC管道中还有其他地方我可以这样做


Crispin

据我所知,没有内置的基于主机的路由支持,但您可以创建一个路由子类,将主机值拉入其中。下面是一个例子:

这是为MVC3编写的,但在MVC4中应该可以正常工作