불안정한 PHP 세션에 대한 해결 방법: 먼저 구성 파일에서 sessionState 노드를 설정한 다음 클래스를 직렬화 가능한 클래스로 설정하고 마지막으로 "asp.net 상태 서비스"를 시작합니다.
추천: "PHP 동영상 튜토리얼"
세션 불안정 문제 해결
회사 시스템에서 항상 세션이 갑자기 끊기는 현상이 있었는데 어제 방법을 생각해봤는데 안 되더라구요. . 오늘 아침에 정보 검색해서 해결했습니다.
어제는 사용자 로그인 정보를 저장하기 위해 새로운 데이터 테이블을 만들고 싶었는데, 사용자를 표시하고 싶을 때 외부의 IP 주소를 사용하여 표시하는 것이 실용적이지 않다고 생각합니다. 그래서 문제를 해결하기 위해 MAC 주소를 사용하고 싶었습니다. sendarp 방법은 지정된 IP의 MAC을 얻을 수 있지만 이는 LAN에만 적용 가능하고 LAN이 아닌 경우에는 구현할 수 없습니다. 파산을 선언했습니다. 클라이언트에서 js를 통해 얻어서 서버로 보내지 않는 이상, 클라이언트 쿠키 없이 매번 확인하는 것이 번거롭다는 점을 고려하여 포기했습니다.
오늘 인터넷에서 구성 파일에 sessionState 노드를 설정할 수 있다는 것을 알았습니다.
<sessionState mode="Off|InProc|StateServer|SQLServer" cookieless="true|false" timeout="number of minutes" stateConnectionString="tcpip=server:port" sqlConnectionString="sql connection string" stateNetworkTimeout="number of seconds"/>
필수 속성은
属性 选项 描述 mode 设置将Session信息存储到哪里 Off 设置为不使用Session功能 InProc 设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。 StateServer 设置为将Session存储在独立的状态服务中。 SQLServer 设置将Session存储在SQL Server中。
선택적 속성은 다음과 같습니다.
属性 选项 描述 cookieless 设置客户端的Session信息存储到哪里 ture 使用Cookieless模式 false 使用Cookie模式,这是默认值。 timeout 设置经过多少分钟后服务器自动放弃Session信息。默认为20分钟 stateConnectionString 设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:"tcpip=127.0.0.1:42424”。当mode的值是StateServer是,这个属性是必需的。 sqlConnectionString 设置与SQL Server连接时的连接字符串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。当mode的值是SQLServer时,这个属性是必需的。 stateNetworkTimeout 设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。
그런 다음 asp.net 상태 서비스를 시작합니다.
클래스를 직렬화 가능한 클래스로 설정하도록 주의하세요! 세션에 추가할 수 있습니다.
System.Web.SessionState.HttpSessionState session = HttpContext.Current.Session; session.Add("user", obj); HttpContext.Current.Session.Add("user", obj); if (obj.USER_DIST_ID == "0000") { HttpContext.Current.Session.Add("sDistID", obj.USER_DIST_ID); } System.Web.Security.FormsAuthentication.SetAuthCookie(obj.USER_ID , false); 。。。
위 내용은 PHP 세션이 불안정할 경우 대처 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!