我有一个将MVC路径路由到aspx页面的奇怪问题。除了一些罕见的情况之外,这一切都可以找到。其实这并不罕见,因为这个月发生了两次。MVC当子域文本也是路由的一部分时,页面路由替换子域的一部分
所以我们已经有了旧的aspx页面,但我们需要有更友好的URL。这是背景,无法避免,因为我不会去。
所以我有一个页面〜/ MySubFolder/Plans.aspx
我们需要的URL为〜/事/计划
,所以我必须在航线配置页面路线
routes.MapPageRoute("Tickets", "Things/Plans", "~/MySubFolder/Plans.aspx");
这在大多数情况下都能正常工作。
该应用程序是SaaS产品,我们根据他们使用的网址确定上下文中的租户。因此,每个租户都会在我们的应用上获得子域名,例如http://clienta.ourapp.com
所以这就是问题所在。
我们有一个客户注册和他们选择了自己的子域名是http://plans.ourapp.com
客户端没有除了当他们试图访问我们的路径〜/事/计划的任何问题。当他们这样做时,我们会得到一个错误。这是我们自己的例外之一,它发生是因为在每次请求时,我们通过查看子域来确定租户是谁。
由于某些原因,当我们检查域名路由时已经剥离了子域名的计划部分,并且是http:// .ourapp.com而不是http://plans.ourapp.com。
因此,这显然是由一个事实,即字计划是子域和计划引起也是路线事情结束/ 计划
我们需要以某种方式避免这种情况发生,也许路线没有正确设置,或者它只是一个错误,但很好找出为什么会发生这种情况,所以我们可以修复它。
谢谢