Faites attention aux pièges lors de la publication d'un site Web ASP.NET. Pourquoi chaque page se fige-t-elle lorsque vous l'ouvrez pour la première fois après la publication du site Web ? Comment résoudre les pertes fréquentes de sessions ASP.NET ? Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Outils de développement : VS2010, MVC4.0, SQLSERVER2008
Serveur : Windows server 2012, IIS8, SQLSERVER2012
1. Après la publication, chaque page est bloquée pendant 50 secondes ou plus lorsqu'elle est ouverte pour la première fois. Cependant, elle est très rapide lorsqu'elle est ouverte pour la deuxième fois
Raison estimée : compilation lente. vitesse, mais la publication sur une machine avec un environnement VS n'est pas si bloquée
Solution :
Utilisez une version supérieure de VS, "précompiler lors de la sortie" ; utilisez la fonction d'initialisation de l'application d'IIS8 1 ; . Utilisation de VS2017 "Précompiler pendant la sortie"
J'ai rencontré une erreur lors de la publication :
C'est une erreur d'utiliser une section enregistrée avec allowDefinition='MachineToApplication' en dehors du niveau application. Cette erreur peut survenir si le répertoire virtuel n'est pas configuré en tant qu'application dans IIS.
Solution : Commentez le code suivant dans web.config lors de la publication
<!--<authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication>-->
2 . Utilisez la fonction d'initialisation de l'application d'IIS8
Solution au premier accès lent du site Web ASP.NET
2 Le problème des pertes fréquentes de session ASP.NET
.Problème : La session est perdue environ 30 secondes après la connexion et vous devez vous reconnecter.
Solution : ASP.NET a plusieurs modes d'état de session. La valeur par défaut est "Mode InProc". Changez-le en "Mode StateServer" et le problème sera résolu.
1. Le mode arrêt
ferme la session.
Pour fermer la session pour l'ensemble du site, vous pouvez écrire dans la section
Pour fermer la Session sur une page, ajoutez sur la page :
<%@ Page EnableSessionState="false" %>
2. Mode InProc (mode par défaut)
Si le mode SessionState n'est pas configuré dans le fichier Web.config, la valeur par défaut est le mode InProc.
Si vous souhaitez personnaliser les paramètres du mode InProc, vous devez écrire le fichier Web.config, par exemple :
Cookieless définit s'il faut autoriser ou non l'utilisation des cookies, et timeout définit le délai d'expiration en minutes.
Le mode InProc repose sur le processus ASP.NET Lorsque le processus IIS plante ou est redémarré, l'état de session enregistré dans le processus sera perdu.
3. Mode StateServer
Le mode StateServer stocke les données de session dans une mémoire tampon séparée, qui est exploitée par un service Windows "ASP. NET". State Service" (doit être activé dans le service Windows) pour contrôler ce tampon, vous devez définir stateConnectionString :
Lors de l'utilisation du mode StateServer, toutes les classes qui doivent être enregistrées dans la session doivent être sérialisables :
[Sérialisable]
public class SomeClass { >
L'avantage du mode StateServer est qu'il est indépendant du processus IIS, et le redémarrage de l'application IIS n'affecte pas les données de session.
4. Mode SQLServer
Utilisez SQL Server pour enregistrer la session Même si IIS est redémarré, la session ne sera pas perdue. Vous devez d'abord créer la base de données ASPState. Des méthodes spécifiques peuvent être trouvées en ligne.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. J'espère également que tout le monde soutiendra Script House.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!