0

我有一个多租户 MVC4 网站,我想在其中根据传入主机和域名设置RouteTable ,例如www.domain1.comwww.domain2.comwww.domain3.co.uk可能有一个或多个附加根据主机和域 anem 附加到路由表的值。

DNS 服务器已经设置了许多带有主机的不同区域,我使用 IIS7 作为“自定义 Web 服务器”而不是使用 Visual Studio 2012 开发服务器,以便我在请求变量。

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

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

它是否需要 Http 模块、Http 处理程序、动作过滤器或类似的东西?或者在 MVC 管道中是否有其他地方可以做到这一点。

克里斯平

4

1 回答 1

0

我知道,没有对基于主机的路由的内置支持,但是您可以创建一个 Route 子类来提取主机值。这是一个示例:

http://blog.maartenballiauw.be/post/2009/05/20/aspnet-mvc-domain-routing.aspx

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

于 2012-11-11T14:27:15.137 回答