이 작업은 아마도 간단한 작업이지만이 작업을 수행하는 방법에 대한 좋은 예를 찾을 수 없었습니다. 내 ASP 응용 프로그램에서 사용자가 업데이트 할 수있는 TextBox 있습니다. TextBox의 Text 속성이 페이지에 액세스하는 모든 사용자에 대해 해당 변수로 설정되도록이 변수의 값을 중앙 위치에 저장하는 방법을 찾고 있습니다. 또한이 변수는 다른 사용자가 업데이트 할 때까지 유지되어야합니다. 최악의 경우 최악의 상황에서이 값을 저장하고 거기에서 가져 오는 데이터베이스 테이블을 만들 수 있지만 ASP 또는 IIS에이 기능이 내장되어 있다고 상상했습니다.모든 세션에서 변수 저장
답변
찾고있는 것이 Application State
. 다음과 같이
당신은 그것을 사용할 수 있습니다
Application["Message"] = "Welcome to the Contoso site.";
할 수 있습니다 예를 들어, 목록 같은 경우에도 저장소 개체 :
Application["MyList"] = new List<string>();
List<string> myList = Application["MyList"] as List<string>;
myList.Add("Test");
동시성이 블라드 Bezden으로
관심사 추가 된 경우 응용 프로그램 컬렉션을 동기화하는 것이 중요합니다. 스레드가 동시에 수정하려고합니다. 이 제 1 잠금 수행 후 다음과 같이 수집을 해제된다
Application.Lock();
//Do any code that modifies or retrieves a value from the collection here
Application['MyMessage'] = "MyMessage";
MyClass myObject = Application['MyObject'] as MyClass;
Application.UnLock(); //Make sure you unlock it, or you will be in for a world of hurt.
애플리케이션 상태 애플리케이션 상태 데이터가 다수의 스레드에 의해 동시에 액세스 될 수 있다는 것을 의미하는 프리 스레드이다. 따라서 응용 프로그램 상태 데이터를 업데이트 할 때 기본 제공 동기화 지원을 포함하여 스레드로부터 안전한 방식으로 수행해야합니다. 잠금 및 잠금 해제 방법을 사용하여 데이터를 쓰기 위해 잠글 때 한 번에 하나씩 소스로 데이터 무결성을 보장 할 수 있습니다. Global.asax 파일의 Application_Start 메서드에서 응용 프로그램 상태 값을 초기화하여 동시성 가능성을 줄일 수도 있습니다.
concurrency concerns here에 대해 자세히 알아보십시오.
확장 성 우려 응용 프로그램이 여러 웹 서버 응용 프로그램을 실행하는 경우 웹 농장/클라우드 시나리오로, 확장 고려해야 할 필요가있는 경우 존 손더스 및 Servy이 의견에 지적
함께 사용하면 영구 데이터를 유지 관리하기위한 데이터베이스 솔루션을 사용하는 것이 좋습니다. 그런 다음 데이터베이스 요구 사항을 웹 서버와 독립적으로 확장 할 수 있으며 동시성 관련 문제도 처리 할 수 있습니다. 그러나이 시나리오에서는 여전히 Application State를 사용하여 자주 업데이트되지 않는 데이터를 캐싱 할 수 있습니다.
웹 서버가 하나 뿐인 경우 응용 프로그램 상태를 사용할 수 있지만 응용 프로그램 상태는 웹 팜에서 작동하지 않습니다. 응용 프로그램을 웹 팜에서 실행하고 여러 웹 서버간에 상태를 공유해야하는 경우 중앙 집중식 저장소 (DB)를 사용해야합니다.경우
응용 프로그램 국가가 당신을 위해 작동하는 경우, 당신은 당신이 그것을 변경하기 전에 잠금 및 잠금 해제 Applicaion 오브젝트 할 필요가 경쟁 조건이없는 있는지 확인
Application.Lock();
Application["myMessage"] = newValue;
Application.UnLock();
- 1. 세션에서 상수 GET 변수 저장
- 2. PHP 세션에서 jQuery 변수 저장
- 3. 세션에서 URL 매개 변수 저장 (레일스)
- 4. 파이썬 세션에서 변수를 저장 하시겠습니까?
- 5. 세션에서 데이터베이스 정렬 저장
- 6. 세션에서 변수 선언하기
- 7. 세션에서 정의되지 않은 변수
- 8. PHP 세션에서 배열 저장
- 9. zend 세션에서 제품 저장
- 10. 세션에서 트랜잭션 스코프 저장
- 11. 팔콘 : 세션에서 설정 저장
- 12. 세션에서 변수 자동 증가
- 13. 여러 세션에서 변수 공유
- 14. PHP 세션에서 도메인 모델 저장
- 15. PHP 세션에서 다중 값 저장
- 16. PHP 세션에서 업로드 IMG을 저장
- 17. 페이지에 모든 JavaScript 변수 저장
- 18. 세션에서 Linq 쿼리를 저장 중
- 19. 세션에서 여러 CAPTCHA 솔루션 저장
- 20. Express 세션에서 변수 정보 전달
- 21. 데이터베이스 또는 세션에서 보안 검색을 저장 하시겠습니까?
- 22. 모든 세션에서 사용자 데이터의 일관성이 유지됩니다.
- 23. 모든 스콘 저장 지정된 변수가 아닌 변수 (기본값 저장)
- 24. Powershell의 원격 세션에서 [ref] 매개 변수 전달
- 25. 자바 스크립트 세션에서 양식 데이터 저장
- 26. 레일 및 jQuery : 세션에서 상태 저장
- 27. 세션에서 데이터 테이블 저장 및 검색
- 28. Facebook API - 세션에서 OAuth 액세스 토큰 저장
- 29. Matlab에 전역 변수 저장
- 30. POE 세션에서 변수 범위 지정은 어떻게 작동합니까?
당신은 무엇이라고를 찾고 있습니다 "응용 프로그램 상태"로. – crush
여기서 찾고있는 것은 데이터베이스입니다. 그것은이 문제에 대한 적절한 해결책입니다 ... – Servy