ASP.NET 웹 사이트를 게시할 때 주의해야 할 사항. 웹 사이트가 게시된 후 처음 열 때 모든 페이지가 정지되는 이유는 무엇입니까? ASP.NET 세션이 자주 손실되는 문제를 해결하는 방법은 무엇입니까? 관심 있는 친구들은 참고할 수 있습니다.
개발 도구: VS2010, MVC4.0, SQLSERVER2008
서버: Windows Server 2012, IIS8, SQLSERVER2012
1. 게시 후 처음 열면 각 페이지가 50초 이상 멈춥니다. 그러나 두 번째 열면 속도가 매우 빠릅니다.
추정 원인: 컴파일 속도가 느립니다. 속도는 빠르지만 VS 환경이 있는 시스템에서는 게시가 그렇게 멈추지 않습니다.
해결책:
VS의 상위 버전을 사용하고, "릴리스 중 사전 컴파일" IIS8 1의 응용 프로그램 초기화 기능을 사용합니다. . VS2017 "릴리스 중 사전 컴파일" 사용
게시할 때 오류가 발생했습니다.
allowDefinition='MachineToApplication'으로 등록된 섹션을 애플리케이션 레벨 외부에서 사용하면 오류가 발생합니다. 이 오류는 가상 디렉터리가 IIS에서 응용 프로그램으로 구성되지 않은 경우 발생할 수 있습니다.
해결책: 게시 시 web.config에서 다음 코드를 주석 처리하세요.
<!--<authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication>-->
2. 애플리케이션 사용 IIS8 초기화 기능
ASP.NET 웹사이트의 느린 첫 번째 액세스에 대한 해결 방법
2. ASP.NET 세션이 자주 손실되는 문제
증상: 로그인 후 약 30초가 지나면 세션이 사라지며, 다시 로그인해야 합니다.
해결책: ASP.NET에는 여러 세션 상태 모드가 있습니다. 기본값은 "InProc 모드"입니다. "StateServer 모드"로 변경하면 문제가 해결됩니다.
1. 꺼짐 모드
세션을 종료합니다.
전체 사이트의 세션을 닫으려면 Web.Config 파일의
페이지에서 세션을 닫으려면 페이지에 다음을 추가하세요.
<%@ Page EnableSessionState="false" %>
2. InProc 모드(기본 모드)
Web.config 파일에 SessionState 모드가 구성되지 않은 경우 기본값은 InProc 모드입니다.
InProc 모드의 매개변수를 사용자 정의하려면 Web.config 파일을 작성해야 합니다. 예:
Cookieless는 쿠키 사용 허용 여부를 설정하고, timeout은 시간 초과를 분 단위로 설정합니다.
InProc 모드는 ASP.NET 프로세스를 사용합니다. IIS 프로세스가 충돌하거나 다시 시작되면 프로세스에 저장된 세션 상태가 손실됩니다.
3. StateServer 모드
StateServer 모드는 세션 데이터를 별도의 메모리 버퍼에 저장하며, Windows 서비스 "ASP.NET"에서 운영됩니다. State Service"(Windows 서비스에서 활성화해야 함) 이 버퍼를 제어하려면 stateConnectionString을 설정해야 합니다:
StateServer 모드를 사용할 때 세션에 저장해야 하는 모든 클래스는 직렬화 가능해야 합니다.
[직렬화 가능]
공개 class SomeClass { }
StateServer 모드의 장점은 IIS 프로세스와 독립적이며 IIS 응용 프로그램을 다시 시작해도 세션 데이터에 영향을 주지 않는다는 것입니다.
4. SQLServer 모드
SQL Server를 사용하여 세션을 저장하면 IIS가 다시 시작되어도 세션이 손실되지 않습니다. 먼저 ASPState 데이터베이스를 만들어야 합니다. 구체적인 방법은 온라인에서 찾을 수 있습니다.
위 내용은 모두의 공부에 도움이 되기를 바랍니다.
위 내용은 두 개의 ASP.NET 웹 사이트를 게시할 때 발생하는 문제와 해결 방법을 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!