2010-04-12 3 views
3

Mauricocodeka은 웹 사이트 재 컴파일 및 응용 프로그램 재활용에 의해 세션이 영향을받지 않도록하려면 기본값 InProc sessions을 사용하지 마십시오.언제 ASP.NET 웹 사이트 프로젝트가 다시 컴파일됩니까?

전체 웹 사이트 재 컴파일 원인이 무엇의 목록 : 기본적으로

  1. , 어떤 변화가 웹 사이트의 최고 수준의 파일하려고 할 때, 전체 사이트를 다시 컴파일. 최상위 파일에는 global.asax 파일과 bin/App_Code/ 폴더의 모든 파일이 포함됩니다. SectionInformation.RestartOnExternalChanges property

    < 섹션 이름 = "MyAppSettings" 유형 = "System.Configuration.AppSettingsSection, System.Configuration 버전에 해당하는 경우 web.config

  2. 구성을 수정

  3. , 파일 변경을 포함 = 2.0.0.0, 문화 = 중립, PublicKeyToken = b03f5f7f11d50a3a " restartOnExternalChanges ="true " requirePermission = "거짓"/ >

참고 :

  • 당신은 전체 사이트가 다시 컴파일없이 최상위 파일을 변경할 수 있도록하려면, 당신의 optimizeCompilations attribute을 설정할 수 있습니다 사실

참조 Web.config 파일의 컴파일 요소 :


어디 자체를 다시 컴파일 웹 사이트 프로젝트 (안 웹 응용 프로그램 프로젝트)을 일으킬 변화와 파일의 종류를 알려주는 정보?

내가 묻는 이유는 사용자가 세션을 잃어 버리는 것을 원하지 않기 때문입니다. 따라서 우리는 라이브 웹 사이트를 아침의 아주 조그만 시간에만 재 컴파일 가능한 변경으로 업데이트하려고 합니다만, 신속하게하기 위해 변경하는 것을 선호합니다. 우리는 준비 서버로 먼저 승진하고 거기서 지켜 보지만 결정적인 목록은 미리 좋을 것입니다.

+0

목록을 작성하여 커뮤니티 위키로 만들어서 모든 사람이 편집 할 수 있도록하십시오. 사용자가 세션을 잃어 버렸다는 것에 대한 – Earlz

+1

은 InProc 세션을 사용하지 마십시오. –

+0

@ Earlz : 저는 경험 많은 사용자 만 지금 편집 할 수 있기를 좋아합니다. 두통을 덜어 주며, 아기를 키우기위한 일차적 인 책임을지기를 좋아합니다. @Mauricio : 우수 지점. –

답변

5

웹 사이트를 다시 컴파일 할 때뿐만 아니라 IIS 작업자 프로세스를 재활용 할 때도 세션이 손실됩니다. 기술적으로, 언제든지 이 발생할 수 있습니다 (최소화 할 수있는 방법이 있지만 어쨌든 작업자 프로세스를 재활용 할 수있는 응용 프로그램을 설계하는 편이 낫습니다). 따라서 세션이 중요한 경우 실제로는이를 저장해야합니다. -방법.

ASP.NET에는 세션 상태를 저장하는 Windows 서비스 인 기본 제공 "상태 서버"가 함께 제공됩니다. 또 다른 옵션은 SQL Server 세션 상태 저장소를 사용하는 것입니다.

많은 사람들이 SQL Server에 세션 상태를 저장하는 것이 성능상의 문제라고 말하지만, 프로세스 재활용으로 세션을 잃는 것은 SQL Server의 성능보다 중요합니다. ASP.NET 상태 서버가 실제로 필요하다면 더 빨리 수행 할 수 있습니다. 전원 사이클을 견디려면 NoSQL 데이터베이스에 상태를 저장하는 사용자 정의 공급자를 작성할 수도 있습니다.