2016-06-24 7 views
2

Ich verwende Asp.net MVC 5 auf Azure-Websites und SQL Azure.Wie wird die Sitzungsverwaltung in SQL Azure 2016 implementiert?

Ich habe 2016 in der Frage angegeben, wie mir viele veraltete Ansätze bekannt sind.

Wie kann ich das SQL Azure-Schema einrichten? Versuchen, die Skriptdateien zu finden.

Täusche ich mich bei der Verwendung dieses Modus oder sollte ich Redis oder Table Storage verwenden. Redis ist offensichtlich ziemlich teuer, etwa £ 65 pro Monat für die günstigste 99,9% SLA-Option.

Danke.

EDIT 1

Es ist wie MS sieht nicht mehr Sitzungsverwaltung in SQL Azure unterstützt, finden Sie unter: MS Article

Soweit ich sie verstehen, empfehlen nur Azure Redis Caching. Hab ich recht? Ich bin sehr überrascht, dass man SQL Azure nicht verwenden kann. Ich weiß, dass es vielleicht etwas langsamer ist, aber es wäre einfach und zuverlässig.

Antwort

2

Ja, Sie sollten Azure Redis verwenden. Ich bin mir nicht sicher, warum SQL einfacher wäre als Redis. Die Verwendung von Redis ist so einfach, wie das Ziehen des nugget-Projekts und das Hinzufügen zu web.config, um den Sitzungsstatusanbieter als Ihre azurblaue Redis-Instanz zu konfigurieren, die Sie erstellt haben. Von dort können Sie die Redis-Bibliotheken verwenden.

<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 auf wie.

+0

Vielen Dank dafür. Ich teste es aus. Es gibt jedoch keine Ideen, wie Sie SQL Azure als Sitzungsanbieter einrichten. Die Installationsskripte schienen verschwunden zu sein. Verwendet SQL Azure ein großes Nein, nein? – SamJolly

+0

Interessanterweise hatte ich Probleme mit dem Versuch, einen Azure Redis Cache zu erstellen. Ich bekomme immer ServerTimeOut Fehler. Ich habe das Rechenzentrum in Nordeuropa und Westeuropa ausprobiert. Scheint eine lange Zeit zu brauchen, dann scheitern. Wie lange sollte die Erstellung eines Redis Cache dauern? – SamJolly

+0

Unsere Redis-Implementierungen funktionierten am Ende, dauerte nur eine lange Zeit, etwa eine Stunde. – SamJolly