我有两个独立的MVC应用程序,我想将其中一个部署在另一个应用程序下。我在ISS中创建了一个网站和一个应用程序,例如“ testsite1”和“ testsite2”。 local.testsite1 运行得很好,但 local.testsite1 / testsite2 无法正常工作,因为testsite1正在捕获请求并试图找到控制器并引发异常。我不想在IIS中创建两个不同的网站。如何解决该问题?
答案 0 :(得分:0)
local.testsite1
和local.testsite1/testsite2
是相同的域。不是子域。这意味着应用程序/ IIS寻找控制器是正确的行为。
您可以考虑将站点合并为一个,并使用MVC Area分开它们?另外,如果您不合并网站,将如何分别为网站触发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?
答案 1 :(得分:0)