首先,我们使用的是 MVC 3、ASP.NET 4.0 和 Visual Studio 2010。
我们的目标是向公开测试版开放我们全新的网站。我们希望将缓慢增加的流量百分比重定向到我们的新站点,而其余流量则转到我们现有的站点...
我们希望通过负载均衡器来做到这一点,但由于资源、基础设施和时间的原因,这不再是一种选择。现在看来,我们唯一的选择就是通过软件来实现。
这里有人做过吗?你有好的策略或解决方案吗?
我们将有两个不同的 URL,如果需要,我们可以使用 cookie 来实现这一点。
首先,我们使用的是 MVC 3、ASP.NET 4.0 和 Visual Studio 2010。
我们的目标是向公开测试版开放我们全新的网站。我们希望将缓慢增加的流量百分比重定向到我们的新站点,而其余流量则转到我们现有的站点...
我们希望通过负载均衡器来做到这一点,但由于资源、基础设施和时间的原因,这不再是一种选择。现在看来,我们唯一的选择就是通过软件来实现。
这里有人做过吗?你有好的策略或解决方案吗?
我们将有两个不同的 URL,如果需要,我们可以使用 cookie 来实现这一点。
这相当简单,并且将按照用户被重定向到移动站点的相同方式完成。在 global.asax.cs 中实现 Application_PreRequestHandlerExecute
如果它们符合您决定的任何标准,请响应。重定向它们。我会在将要留在一个站点或下一个站点上的任何人身上存储一个 cookie,这样他们就不会在查看非 beta 站点的过程中被错误地重定向。这也不能处理人们不使用 cookie 的情况。
这是伪代码,所以它可能不是 100% 正确的
protected void Application_PreRequestHandlerExecute(object sender, EventArgs
e)
{
if(Request.Cookies["BetaResult"] == null)
{
var cookie = new HttpCookie("BetaResult");
cookie.Expires = DateTime.Now.AddDays(1d);
if(whatever logic to redirect to beta)
{
cookie["BetaResult"] = "Beta";
Response.Cookies.Add(cookie);
Response.Redirect("your beta site");
}
else
{
cookie["BetaResult"] = "Main";
Response.Cookies.Add(cookie);
}
}
else
{
//if cookie value is beta, redirect to beta site, they 'are a chosen one'
}
}