2016-06-24 2 views
2

저는 Azure 웹 사이트와 SQL Azure에서 Asp.net MVC 5를 사용하고 있습니다.2016 년 SQL Azure에서 세션 관리를 구현하는 방법은 무엇입니까?

많은 오래된 구식 접근법을 알고 있으므로이 질문에 2016을 지정했습니다.

SQL Azure 스키마는 어떻게 설정합니까? 스크립트 파일을 찾으려고합니다.

이 모드를 잘못 사용했거나 Redis 또는 테이블 저장소를 사용해야합니까? Redis는 분명히 매우 비쌉니다. 가장 저렴한 99.9 % SLA 옵션의 경우 매월 £ 65 정도입니다.

감사합니다.

편집 그것은 MS 보이는 1

가 더 이상 SQL 애저에서 세션 관리를 지원 볼 : MS Article

를 지금까지 내가 그들은 단지 푸른 레디 스 캐싱을 사용하는 것이 좋습니다 이해. 나 맞아? 나는 SQL Azure를 사용할 수 없다는 것에 매우 놀랐습니다. 나는 그것이 조금 느릴지도 모른다는 것을 안다. 그러나 그것은 간단하고 신뢰할 것이다.

답변

2

예 Azure Redis를 사용해야합니다. 나는 왜 Redis를 사용하는 것보다 SQL이 더 간단한 지 확신하지 못한다. Redis를 사용하는 것은 nuget 프로젝트를 끌어 들이고 web.config에 추가하여 세션 상태 공급자를 생성 한 청색 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 Cache를 만들려고 할 때 문제가 없습니다. ServerTimeOut 오류가 계속 발생합니다. 나는 북유럽과 서유럽 데이터 센터를 시험해 보았습니다. 오랜 시간이 걸리면 실패합니다. Redis 캐시 생성 시간은 얼마나 걸립니까? – SamJolly

+0

Redis 배포는 결국 완료되었습니다. 한 시간 정도가 걸렸습니다. – SamJolly

관련 문제