회사가 서버를 부하 분산해야 하기 때문에, 웹 프로젝트는 두 개의 프론트엔드 서버(web1과 web2) 각각에 하나씩 배포합니다. 하지만 세션은 프로젝트에서 사용됩니다. web1에 처음 접했을 때, web1에서 web2로 넘어갈 수도 있는데, 그 이후에는 부담이 증가할 수 있기 때문입니다. 인터넷에서 많은 정보를 찾았고, web.config 설정도 이해했습니다 <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" /> 인터넷에 많은 예시가 있는데 stateConnectionString="tcpip=127.0.0.1:42424"가 있는데, 웹 서버에서는 물론 괜찮지만, stateConnectionString을 stateConnectionString="tcpip=192.168.1.82: 42424"로 바꾸면 두 프론트엔드 모두에 문제가 생깁니다. 마이크로소프트는 구체적인 해결책을 제시하지 않았으며, MSDN 예시들도 127.0.0.1을 가리키고 있습니다. 나중에 전문가들과 상담하고 조사한 결과, 세신을 구하는 서버의 레지스트리를 수정해야 한다는 것을 알게 되었습니다. 여기 192.168.1.82이며, 수정 내용은 다음과 같습니다: 등록부 수정하기:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"서비스"aspnet_state"파라미터
AllowRemoteConnection=1
그럼 ASP.NET 국가 서비스를 다시 시작해
연결 구성은 다음과 같습니다:
<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect" 타임아웃="60" />
그 후에는 테스트가 끝나고 괜찮아졌습니다. 다른 분들께 도움이 되길 바랍니다. 아직도 이해하지 못하는 또 다른 문제가 있습니다. 제가 만든 wap 페이지는 페이지의 ViewState에 데이터가 저장되고, 페이지가 계속 새로고침되면 데이터가 사라지고 시간이 20분을 넘지 않습니다. 이게 마이크로소프트의 버그인지 뭔지 모르겠는데, 이 문제는 웹페이지에 나타나지 않아요. 해결책. 탐색 기간을 거친 후에는 WAP 페이지에서 뷰스테이트를 줄이는 것이 가장 좋으며, asp.net 상태 서비스가 활성화되어 있다면 cookieless를 true로 설정하는 것이 좋습니다. 그렇지 않으면 세션이 손실됩니다. |