Maison > développement back-end > Tutoriel C#.Net > Partagez les problèmes et les solutions rencontrés lors de la publication de deux sites Web ASP.NET

Partagez les problèmes et les solutions rencontrés lors de la publication de deux sites Web ASP.NET

Y2J
Libérer: 2017-04-28 10:27:57
original
2147 Les gens l'ont consulté

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>-->
Copier après la connexion

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 du fichier Web.Config :


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal