2016-06-24 54 views
2

我在Azure網站和SQL Azure上使用Asp.net MVC 5。如何在2016年SQL Azure上實現會話管理?

我在問題中指定了2016年,因爲我意識到許多過時的方法。

如何設置SQL Azure模式?試圖找到腳本文件。

我錯誤地使用這種模式,或者我應該使用Redis或表存儲。 Redis顯然非常昂貴,大約每月65英鎊,最便宜的99.9%SLA選項。

謝謝。

編輯1

它看起來像MS不再支持SQL Azure的會話管理,請參閱:MS Article

據我瞭解,他們建議僅使用Azure的Redis的緩存。我對麼?我很驚訝不能使用SQL Azure。我知道它可能會慢一點,但它會直接和可靠。

回答

2

是的,你應該使用Azure Redis。我不確定爲什麼sql比使用Redis更直接。使用Redis非常簡單,只需引入nuget項目並添加到web.config即可將會話狀態提供程序配置爲您創建的Azure Redis實例。從那裏你可以開始使用Redis庫。

<sessionState mode="Custom" customProvider="RedisSessionProvider"> 
    <providers> 
    <add name="RedisSessionProvider" 
     type="Microsoft.Web.Redis.RedisSessionStateProvider" 
     port="6380" 
     host="YOURCACHE.cache.windows.net" 
     accessKey="Primary Access Key" ssl="true" /> 
    </providers> 
</sessionState> 

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     object value = Session["Home"]; 
     int result = 0; 
     if (value != null) 
     { 
      result = (int)value; 
      Session["Home"] = ++result; 
     } 
     else 
     { 
      Session["Home"] = 1; 
     } 

     return View(); 
    } 

    public ActionResult About() 
    { 
     object value = Session["Home"]; 
     string home = "Didn't work"; 
     if(value != null) 
     { 
      home = ((int)value).ToString(); 
     } 
     ViewBag.Message = string.Format("The cache value is {0}", home); 

     return View(); 
    } 
} 

Here's a link關於如何。

+0

謝謝你。我正在測試這個。但是,有關如何將SQL Azure設置爲會話提供者的任何想法。安裝腳本似乎已經消失。使用SQL Azure是一個很大的不,不是? – SamJolly

+0

有趣的是,我試圖創建Azure Redis緩存的問題並沒有結束。我不斷收到ServerTimeOut錯誤。我曾嘗試過北歐和西歐數據中心。似乎需要很長時間,然後失敗。創建Redis緩存需要多長時間? – SamJolly

+0

我們的Redis部署最終確實奏效,花了很長時間,大約一個小時。 – SamJolly