파일 시스템에서 개발한 프로그램이 IIS에서 구성되었는데, 쿠키에 문제가 좀 있었습니다.
1. 쿠키의 손실 며칠 전에 "매우 어려운 문제입니다. vs2005를 사용하여 파일 시스템 메커니즘으로 개발한 웹 프로그램을 iis로 구성하면 정상적으로 실행될 수 없습니까?"라는 에세이를 썼습니다. ""는 최고 관리자 권한을 저장한 쿠키가 손실되는 문제에 대한 나의 해결 방법을 기록했습니다. 문제는 마침내 해결되었지만 그 이유를 이해할 수 없었습니다. 에세이 마지막 부분에서 파일 시스템에서는 정상적으로 작동하지만 iis에서는 작동하지 않는 터무니없는 이유를 설명했습니다. 파일 시스템은 디버깅할 때마다 마이크로서버를 제공하고 메모리는 매번 재할당됩니다. iis에서 처음 실행하는 것은 메모리를 할당하는 것입니다. 프로그램이 변경되지 않고 다시 컴파일될 필요가 없는 한 메모리는 더 이상 재할당되지 않습니다. 오늘 여기에 언급된 "ASP.NET에서 세션 사용에 관해 자주 묻는 질문 모음"을 봤습니다. 방화벽이나 바이러스 백신 소프트웨어 등 시스템 환경과 관련이 있을 수 있습니다. 방화벽을 끄십시오( 세션 손실 이유는 쿠키 손실 이유와 관련이 있어야 함) 동일). 나는 그가 말한 것이 의미가 있다고 생각합니다. 파일 시스템에서 실행하면 방화벽을 통과해서는 안 되지만 iis에서 실행하면 방화벽을 통과해야 합니다. 이 문제를 겪고 있는 사람은 나뿐만이 아닌 것 같습니다. 이전에 asp.net1.1을 사용할 때 쿠키나 세션이 손실된 적이 없습니다.
2. 쿠키의 한자가 깨졌습니다. 어젯밤에 IIS의 쿠키에 또 다른 문제가 있어 문자가 깨졌음을 갑자기 발견했습니다.
문제를 해결하는 데 오랜 시간이 걸렸습니다.
//쿠키를 작성할 때
string t =HttpUtility.UrlEncode (쿠키에 기록될 중국어 값);
HttpCookie c = new HttpCookie("user_realname", t);
응답.쿠키.추가(c);
//쿠키를 읽을 때
t=구입된 중국 쿠키 값;
t = HttpUtility.UrlDecode(교사_이름);
그게 다야.
vs2005 파일 시스템을 사용하여 프로젝트를 개발하는 친구들에게 주의를 환기시키세요.
파일 시스템과 iis의 작동 방식이 다른 이유는 작동 메커니즘과 관련이 있을 것입니다. 해당 작동 메커니즘을 소개하는 정보를 찾아보시기 바랍니다.