Asp.net mvc 是否可以在不同的AppDomain中运行ASP.NET MVC路由?

Asp.net mvc 是否可以在不同的AppDomain中运行ASP.NET MVC路由?,asp.net-mvc,url-routing,appdomain,global-asax,Asp.net Mvc,Url Routing,Appdomain,Global Asax,我在思考以下问题的解决方案时遇到问题。我有一个博客,最近我把它从web表单升级到MVC。该博客在两个不同的域名上提供瑞典语和英语版本,并在IIS的同一网站上运行 问题是,我希望这两个站点上都有特定于语言的URL,如下所示: protected void Application_Start() { AppDomain.CreateDomain("codeodyssey.se"); AppDomain.CreateDomain("codeodyssey.com"); } 中文: 瑞典人

我在思考以下问题的解决方案时遇到问题。我有一个博客,最近我把它从web表单升级到MVC。该博客在两个不同的域名上提供瑞典语和英语版本,并在IIS的同一网站上运行

问题是,我希望这两个站点上都有特定于语言的URL,如下所示:

protected void Application_Start()
{
   AppDomain.CreateDomain("codeodyssey.se");
   AppDomain.CreateDomain("codeodyssey.com");
}
中文:

瑞典人:

目前,我通过根据调用的域在每个请求上注册RouteTable实现了这一点。My Global.asax看起来像这样(不是全部代码):

目前这是可行的,但我知道这不是一个很好的解决方案。我一直得到一个“项目已被添加。在字典中键入”错误时,说明了这个应用程序,它似乎并不稳定,有时

我只想在应用程序中设置我的路线,而不必像现在这样在每次请求时都清除它们。问题是请求对象不存在,我无法知道应该注册哪些特定于语言的路由

一直在阅读AppDomain,但找不到很多关于如何在网站上使用它的示例。我想我们一直在考虑这样的事情:

protected void Application_Start()
{
   AppDomain.CreateDomain("codeodyssey.se");
   AppDomain.CreateDomain("codeodyssey.com");
}
然后在每个应用程序域中注册每个网站路由,并根据url向其中一个发送请求。找不到任何有关如何以这种方式使用AppDomains的示例


我完全偏离轨道了吗?或者有更好的解决方案吗?

ASP.Net运行时为您管理AppDomains,因此在代码中创建AppDomains可能不是一个好主意

但是,如果可以,我建议创建多个IIS应用程序(一个用于,一个用于)。将两个应用程序指向磁盘上的同一目录。这将为您提供您正在寻找的两个AppDomain


然后,在应用程序启动代码中,您可以检查域并相应地构建路由。

是的,我一直在考虑这样做,这确实是一个很好的解决方案。由于我无法访问此网站的IIS,因此必须询问我的web主机。并且仍然不知道是否可以从代码中添加AppDomain。如果有20种语言呢?然后,您需要将它们全部添加为IIS应用程序,如果您想对所有这些应用程序进行更改,则需要进行大量管理。另外一种解决方案是添加包含区域性代码(如“BlogPost#sv SE”)的名称的所有路由(无论使用哪种语言)然后使用当前区域性代码确定生成链接时要渲染的区域性代码。不过,你必须编写自己的链接和URL帮助程序。我认为我只需向我的web主机发送一封邮件,并要求他们添加另一个IIS应用程序,就像你最初建议的那样。随着ASP.NET MVC的进一步发展,将来可能有人会有一个添加多个路由表或自定义URL帮助程序的解决方案。谢谢你的帮助。