C# 如何在同一服务器上承载同一站点的多个版本?

C# 如何在同一服务器上承载同一站点的多个版本?,c#,asp.net-mvc,iis,C#,Asp.net Mvc,Iis,我有一个网站,我正在迁移到版本2。这是一个交错的推出,与大爆炸相反。我打算做的是向新站点发送一定数量的流量,其余的则是旧版本。我不喜欢在负载平衡器上这样做(有几个原因我不想讨论,因为它是业务驱动的,而不是技术驱动的)。我的服务器数量有限,因此我不希望将新代码放在专用服务器上。我还想确保URL不存在差异,以免混淆客户 版本2的代码是全新的,现在不是,将来也不会是版本1代码库的一部分。两者必须分开。再一次;业务驱动,但不可协商 (例如:他击中了,我不想重定向到) 我正在使用IIS和ASP.NET M

我有一个网站,我正在迁移到版本2。这是一个交错的推出,与大爆炸相反。我打算做的是向新站点发送一定数量的流量,其余的则是旧版本。我不喜欢在负载平衡器上这样做(有几个原因我不想讨论,因为它是业务驱动的,而不是技术驱动的)。我的服务器数量有限,因此我不希望将新代码放在专用服务器上。我还想确保URL不存在差异,以免混淆客户

版本2的代码是全新的,现在不是,将来也不会是版本1代码库的一部分。两者必须分开。再一次;业务驱动,但不可协商

(例如:他击中了,我不想重定向到)

我正在使用IIS和ASP.NET MVC 4.0。我更喜欢基于代码的解决方案(例如httpmodules,并在querystring中添加一些内容),但看不出这是如何工作的


除了在负载平衡器中安装大量病毒之外,我很高兴听到任何解决方案,无论是硬件/软件/中间件。

可以想象的唯一方法是通过负载平衡器。否则,您将遇到一个简单的问题,即单个域不能附加到多个应用程序,多个应用程序不能驻留在同一个文档根中。您可以使用像
new.example.com
这样的子域,但您明确表示不希望这样。唯一的替代方案是将新应用程序放在旧应用程序的虚拟目录中。然后,您可以保持域不变,但必须从
http://example.com/somepage
http://example.com/new/somepage
。此外,旧应用程序的Web.config将应用于虚拟目录中的任何其他应用程序,因此必须付出巨大的代价来确保没有配置泄漏。

您可以始终放入URL重写模块(我知道这是一个痛苦的过程)只需将url重写到new.example.com/somepage,最终用户就不会意识到url正在被重写。@DavidL最终将应用程序请求路由和url重写一起使用;反向代理,带规则。这并没有那么糟糕,比配置负载平衡器要好。