2016年如何在SQL Azure上实施会话管理?

2016年如何在SQL Azure上实施会话管理?,azure,azure-sql-database,azure-web-app-service,Azure,Azure Sql Database,Azure Web App Service,我在Azure网站和SQLAzure上使用Asp.NETMVC5 我在问题中明确了2016年,因为我知道许多过时的方法 如何设置SQL Azure架构?正在尝试查找脚本文件 我使用这种模式是错误的,还是应该使用Redis或表存储。Redis显然相当昂贵,最便宜的99.9%SLA选项约为每月65英镑 谢谢 编辑1 看起来MS不再支持SQL Azure中的会话管理,请参阅: 据我所知,他们建议只使用Azure Redis缓存。我说得对吗?我很惊讶一个人不能使用SQLAzure。我知道它可能会慢一点,

我在Azure网站和SQLAzure上使用Asp.NETMVC5

我在问题中明确了2016年,因为我知道许多过时的方法

如何设置SQL Azure架构?正在尝试查找脚本文件

我使用这种模式是错误的,还是应该使用Redis或表存储。Redis显然相当昂贵,最便宜的99.9%SLA选项约为每月65英镑

谢谢

编辑1

看起来MS不再支持SQL Azure中的会话管理,请参阅:


据我所知,他们建议只使用Azure Redis缓存。我说得对吗?我很惊讶一个人不能使用SQLAzure。我知道它可能会慢一点,但它将是直接和可靠的。

是的,你应该使用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();
    }
}


关于如何

谢谢你。我正在测试这个。但是,您不知道如何将SQLAzure设置为会话提供程序。安装脚本似乎已消失。使用SQLAzure是一个大问题吗?不,不?有趣的是,我一直在尝试创建Azure Redis缓存。我不断收到服务器超时错误。我在北欧和西欧数据中心进行了尝试。似乎需要很长时间,然后失败。创建一个Redis缓存需要多长时间?我们的Redis部署最终确实有效,只花了很长的时间,大约一个小时。上面的链接讨论了会话。添加,但即使添加了“using StackExchange.Redis;”,我仍然得到一个“Name会话在当前上下文中不存在。基本上它找不到”会话“。在学习我的开发Azure解决方案认证时,文档始终阅读使用Redis进行会话管理,并且没有指出支持其他路径。他们可能不再支持使用Azure sql进行会话管理,这可能是很难找到关于它的文档的原因。我当然找不到。