将MVC路径路由到aspx页面时遇到了一个奇怪的问题。除了一些罕见的场景外,一切都有效。实际上并不罕见,因为这个月发生了两次。
所以我们有旧的aspx页面,但我们需要更友好的URL。这是背景,无法避免,因为我不会进入。
所以我有一个页面〜/ MySubFolder / Plans.aspx
我们需要URL为〜/ Things / Plans
所以我在路由配置中有一个页面路由
routes.MapPageRoute("Tickets", "Things/Plans", "~/MySubFolder/Plans.aspx");
在大多数情况下,一切正常。
该应用是SaaS产品,我们根据用户使用的网址确定租户。因此,每个租户都会在我们的应用上获得一个子域名,例如http://clienta.ourapp.com
所以这就是问题所在。
我们有一个客户注册,他们选择了他们的子域名为http://plans.ourapp.com
客户端没有任何问题,除非他们试图访问我们的路径〜/ Things / Plans。当他们这样做时,我们得到一个错误。这是我们自己的例外之一,因为在每个请求中我们通过查看子域来确定租户是谁。
出于某种原因,当我们检查域名路由已经删除了子域名的计划部分并且是http:// .ourapp.com而不是http://plans.ourapp.com。
所以这显然是因为计划这个词是子域名,而计划也是路线的终点事物/ 计划
我们需要以某种方式避免这种情况发生,也许路线设置不正确或者它可能只是一个错误,但很好地弄清楚为什么会发生这种情况所以我们可以解决它。
由于
答案 0 :(得分:0)
事实证明,这与路由URL无关。在我们尝试评估当前租户URL的代码中的其他地方,我们出于某种原因基于URL的另一部分替换部分URL,这在某些情况下是问题。难怪没有人对此有答案