2012-12-18 40 views
2

首先,我們使用的是MVC 3,ASP.NET 4.0和Visual Studio 2010.如何將用戶的百分比重定向到beta測試網站?

我們的目標是打開我們全新的網站到公測版。我們希望將緩慢增加的流量百分比重新導向到我們的新網站,而其餘流量流向我們現有的網站...

我們希望通過負載平衡器來做到這一點,但這不再是一個由於資源,基礎設施和時間的選擇。現在看來,我們唯一的選擇是通過軟件來完成。

有沒有人在這裏做過?你有沒有一個好的策略或解決方案?

我們將有兩個不同的URL,我們可以使用cookie來實現這一點,如果需要的話。

+0

有什麼不對負載均衡?在此處查看AutoFac多租戶策略:http://code.google.com/p/autofac/wiki/MultitenantIntegration。這個答案也可以是有幫助的http://stackoverflow.com/questions/10918076/autofac-multitenant-how-do-i-route-to-a-subdomain – amdmax

+1

A/B測試。 http://www.optimizely.com/提供這種服務。 –

+0

A/B看起來有點像我們想要的,但我們最終將把我們的整個測試版網站投入生產。我們並不真正看到哪個更好。這是一個完整的重寫。 我們不能使用負載均衡器,因爲我們沒有資源或基礎設施來支持它。它的一個長長的故事......(相信我,我們知道這將是最簡單的方式,並且真的很喜歡這樣做)。 感謝您的回答。 –

回答

1

這很簡單,用戶將被重定向到移動網站。 在global.asax.cs中實現Application_PreRequestHandlerExecute

如果它們符合您決定的任何標準,則將Response.Redirect它們。我會在任何一個站點或下一個站點上存儲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' 
} 

} 
相關問題