2009-03-20 3 views

답변

4

새로운 응용 프로그램의 경우 I try to avoid them이며 암호화되거나 서명 된 쿠키를 선호합니다. 이것은 새롭게 발견 된 개인적 취향에 불과합니다. 휴식해야 할 것이 한 가지 더 있고, 2 년 동안 24/7/365에 사이트를 유지하기 위해 노력한 결과, 이는 머리를 긁적으로 부서진 유일한 것입니다. 신비한 방법. 또한 객체에 [Serializable]을 추가하는 것을 잊어 버리고 실행 중 세션에서 비동기 세션에 저장하려고 할 때 시계가 날아가는 것을 지키는 것도 쉽습니다. 그래서 말하자면 갈기 갈기가 또 있습니다.

즉, 저는 세션 저장을 항상 유지하고 실행하는 것에 대해 걱정할 필요가없는 중요한 문제없이 세션을 사용하고 있습니다. InProc을 사용하는 경우 응용 프로그램 풀이 다시 시작될 때마다 세션이 압축되지 않도록 걱정해야하며, 이는 작업자 프로세스의 메모리 사용량을 풍선으로 만들 수 있습니다. 이는 또 다른 단점입니다. 다른 방법 중 하나를 사용하면 웹 사이트에 포인트 업데이트를 릴리스하고 고객의 현재 상태에 영향을주지 않는 것이 좋습니다.

(개인적으로 여러 서버에서도 세션 확장에 문제가 없었지만, 다시 한 번 약 3 페이지 뷰/초).어쨌든 데이터베이스에 대해 이야기하고 있다고 생각합니다. 세션을 가져 오는 데 드는 비용은 그 세척에 있습니다.)

세션을 사용하는 것은 나쁜 선택이 아니며, 그것으로. 이것을 서버 측 쿠키로 생각하여 인공적인 4KB 또는 그 이상의 장벽에 국한하십시오. 기존 애플리케이션의 경우 세션을 해제하는 데 신경 쓰지는 않겠지 만, 일반적으로 이제는 간단하게 유지하고 않고 수행하려고합니다.

+0

InProc 세션은 꽤 잘 확장됩니다. 우리는 ~ 1200 개의 사이트를 공유하는 공유 호스팅 상자를 실행하고 응용 프로그램 풀을 공유하고 모든 종류의 세션 남용을 진행하지만 결코 어떤 문제도 발생시키지 않았습니다. 앱 풀 재설정에 대한 귀하의 요점은 매우 유효합니다. – Kev

3

인트라넷 애플리케이션의 경우에는 사용합니다 (실제로는 그렇지 않습니다).

외부 응용 프로그램의 경우 원하는 경우 단일 서버 만 사용해야합니다.

사용자 수가 많고 프록시 밸런서 뒤에 여러 웹 서버가있는 대형 앱의 경우 사이트를 구축하여 사용하지 않는 것이 좋습니다. 개인적으로 사용하는 가장 좋은 방법은 암호화 된 데이터를 사용자 쿠키에 저장하는 것입니다.

0

나는 세션을 피하려고하지만 응용 프로그램에 해를 끼치 지 않는다. 그것들을 우회하려고 노력하는 것보다 몇몇 디자인이 세션에 더 좋습니다. 일반적으로 나는 다른 곳에 쉽게 저장할 수있는 물건을 위해 사용하지 않습니다.

1

ASP.NET Session State FAQ 이것은 세션 vaiables 등등의 긍정적 인 측면에 대한 답변입니다 ... 나는 그들을 위해 사용하는 것들과 다른 것들을 피하려고 노력합니다. 이렇게 질문에 대한 대답은 다양합니다.

0

ASP.NET의 세션 관리가 좋으므로 사용하지 않으려 고해서 자신 만의 막대를 만들지 마십시오. ASP.NET의 세션 management capabilities은 사용자의 필요에 따라 다양한 솔루션을 제공하기 위해 상당히 확장되었습니다. 또한 Microsoft's Velocity 프로젝트를 주시해야합니다.

Kev

0

필요한 경우 사용하십시오. 작은 용도로는 페이지간에 데이터를 전송할 수있는 쉬운 방법이지만 특히 페이지 사이의 세션에 제어 기능을 사용하면 안됩니다. 상처를 입을 수 있습니다.

1

저는 세션 변수를 자주 사용하지만 크기가 큰 객체에는 사용하지 않습니다. 세션 변수의 문제점은 작업을 마칠 때 코드를 지우는 것을 잊어 버릴 수 있다는 것입니다. 코드에서 하드 코딩 할 수 있습니다. 이러한 이유로 세션 변수를 sessionvariables라고하는 객체에 캡슐화합니다. 그것을 통해 액세스하십시오. 그것들을 지울 필요가있을 때 나는 세션에서 모든 변수를 지우는 방법을 객체에 정의합니다.

viewstate 또는 querystring 대신에 나는 직면 한 대부분의 경우에 가장 적합합니다.

0

작은 개체에는 꽤 자주 사용하지만 시간이 지남에 따라 세션의 맨 위에있는 간단한 레이어를 만들었습니다. 세션을 지우고 올바른 유형으로 캐스팅하고 키를 관리하는 등의 작업을 처리합니다. 이것은 또한 충돌을 멈추게합니다.

내가 쿼리 문자열에 저장할 수없고 일부보기 상태에 저장하고 싶지 않은 일이 있습니다. 정말로 남아있는 것은 모두 세션입니다.

관련 문제