local.testsite1 和 local.testsite1/testsite2 是同一个域。不是子域。这意味着寻找控制器的应用程序/IIS 是正确的行为。
您可以考虑将站点合并为一个并使用 MVC 区域将它们分开吗?此外,如果您不合并站点,您将如何分别为站点触发 app_start 和其他事件?
在这种情况下,您可以编写自定义路由,将 testsite2 的路由与 testsite1 的路由分开。
例如 testsite1 的路由定义可以是:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "YourApp.Controllers" }
);
而你的testsite2区域路由注册可以是:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Branch|AdminHome|User" },
new[] { "YourApp.Areas.testsite2.Controllers" }
);
}
更多关于实现的信息在这里:Mvc area routing?