2011-11-23 2 views
0

사용자가 드롭 다운에서 데이터베이스 소스를 선택하는 화면이 있습니다. 일단 그것이 선택되면 사용자가 선택하지 않아도되도록 정보가 다른 화면으로 전달되기를 바랍니다.Azure에서 실행되는 MVC 3에서 한 화면에서 다른 화면으로 세션 정보를 전달하는 방법

어떻게 이런 정보를 한 화면에서 다른 화면으로 전달할 수 있습니까?

DatasourceID - 2 characters 
SubjectID - 2 characters 

나는 푸른에서 실행하고 있습니다으로 내가 클라이언트 측에있을 것이다이를 저장하는 가장 좋은 장소를 가정 할 수있다 : 정보가 같은 단지 아주 작은 것들합니다? 다음과 같이 데이터를 저장하는 구현을 보았습니다.

Session["abc"] = "def"; 
if (Session["abc"] != null) 
etc ... 

이것이 가장 좋은 방법입니까 아니면 놓친 것입니까? 또한 위의 경우 페이지가 매번 다른 서버에서 제공 될 때 어떻게 작동합니까? 위의 정보를 로컬에 저장합니까?

답변

2

세션은 서버쪽에 저장됩니다. 이제 Azure에서 정확하게 저장되는 옵션을 선택할 수 있습니다. 이 데이터 소스로 무엇을하고 싶은지에 달려 있습니다. 다음 화면에서 필요한 항목이면 세션에 저장된 TempData에 저장할 수 있습니다. 그것은 당신이 그것을 읽을 때까지 거기에 보관됩니다.

푸른 AppFabric 캐싱 가지고 BLOB 저장소에 SQL 애저 DB

  • 에 푸른 AppFabric 캐시에
    1. :

      이제 세션 상태를 저장하는 옵션이 설정이 매우 쉬운 세션 제공자. Azure 포털에 새 캐시를 만들고 툴바의 버튼을 클릭하여 필요한 web.config 항목을 가져올 수 있습니다. 이 또한 explained in detail here입니다.

      세션을 사용하여 프로세스를 외부에 저장할 수 있습니다. 단점은 약간 비싸다는 것입니다 (128MB 캐시의 경우 약 $ 45/월). 따라서 SQL Azure에 세션 상태를 저장하는 방법도 있습니다. SQL Azure 용 세션 공급자가 있습니다.

      여기 Scott Hanselman의 ASP.NET 범용 공급자에 대한 a link to a great introduction입니다. 회원 자격을 사용하고 있지 않다면 System.Web.Providers.DefaultSessionStateProvider을 설정하면됩니다.

      SQL Azure DB에 연결 문자열을 지정했는지 확인하십시오. 참고 : 연결 문자열에 MultipleActiveResultSets=True을 설정해야하므로 포털에서 SQL Azure 연결 문자열을 복사 한 경우 다시 추가해야합니다.

      그런 다음 training kit에 블로그 저장을위한 세션 공급자가 있으며 http://code.msdn.microsoft.com/windowsazure/Windows-Azure-ASPNET-03d5dc14에 샘플 앱과 함께 제공됩니다. MS에서 지원하지 않는다고 생각합니다.

      희망이 도움이됩니다.

  • +0

    TempData가 내 요구를 충족시키는 것처럼 들립니다. AppFabric 캐싱은 훌륭하게 들리지만 아주 적은 양의 데이터만으로도 적은 양의 캐쉬가 필요합니다. $ 45는 이것에 대해 약간의 소리입니다. –

    +0

    답변을 업데이트했습니다. MS로부터 CloudEssentials 계약을받을 수 있다면 128MB 캐시가 무료로 제공됩니다. –

    관련 문제