Le programme que j'ai développé sous le système de fichiers était configuré sous IIS et il y a eu quelques problèmes avec les cookies.
1. La perte des cookies. J'ai écrit un essai il y a quelques jours "Un problème très difficile. Un programme Web développé sous le mécanisme du système de fichiers utilisant vs2005 ne peut pas fonctionner normalement s'il est configuré sur iis ?" "" a enregistré ma solution au problème de perte des cookies qui stockent les autorisations de super-administrateur. Bien que le problème ait finalement été résolu, je n'en ai pas compris la raison. À la fin de l'essai, j'ai donné une raison farfelue pour laquelle il fonctionne normalement sous le système de fichiers mais pas sous iis : le système de fichiers fournit un micro-serveur à chaque fois qu'il est débogué, et la mémoire est réaffectée à chaque fois. La première fois que vous l'exécutez sous iis, c'est pour allouer de la mémoire. Tant que le programme ne change pas et n'a pas besoin d'être recompilé, la mémoire ne sera plus réaffectée. Aujourd'hui, j'ai vu la « Collection de questions fréquemment posées sur l'utilisation de la session dans ASP.NET » mentionnée ici : Cela peut être lié à l'environnement de la machine, comme un pare-feu ou un logiciel antivirus, etc. Essayez de désactiver le pare-feu (le la raison de la perte de session doit être liée à la raison de la perte des cookies) Idem). Je pense que ce qu'il a dit est logique. L'exécution sous le système de fichiers ne doit pas passer par le pare-feu, mais l'exécution sous iis doit passer par le pare-feu. Il semble que je ne sois pas le seul à rencontrer ce problème. Je n'ai jamais rencontré de perte de cookies ou de sessions lors de l'utilisation d'asp.net1.1 auparavant.
2. Les caractères chinois dans les cookies étaient tronqués. J'ai soudainement découvert hier soir qu'il y avait un autre problème avec les caractères chinois dans les cookies sous IIS, affichant des caractères tronqués.
Il a fallu beaucoup de temps pour le résoudre :
//Lors de l'écriture des cookies
string t =HttpUtility.UrlEncode (valeur chinoise à écrire dans les cookies) ;
HttpCookie c = new HttpCookie("user_realname", t);
Réponse.Cookies.Add(c);
//Lors de la lecture des cookies
t=La valeur du cookie chinois obtenue ;
t = HttpUtility.UrlDecode(nom_enseignant);
C'est ça.
Rappelez à vos amis qui utilisent le système de fichiers vs2005 pour développer des projets d'y prêter attention.
La raison de la différence dans le fonctionnement du système de fichiers et de iis devrait être liée à leurs mécanismes de fonctionnement. J'espère trouver des informations présentant leurs mécanismes de fonctionnement !