2009-09-04 7 views
1

Je voudrais savoir s'il existe un moyen de continuer la session.Visual Studio Conserver la session entre les reconstructions etc

J'en ai marre de perdre ma session entre les reconstructions/builds, si je change trop dans mon projet ou si je soumets du code à notre SVN (tortue via VisualSVN). Je développe un projet ASP.NET MVC avec beaucoup de jQuery.

Je voudrais faire cela car je teste mon projet sur un écran avec Firefox (Firebug gagne) et édite de l'autre en studio visuel. Comme mon projet a un système de session et que j'aimerais pouvoir le développer sans avoir à me réenregistrer dans mon système.

Merci

Edit: Visual Studio 2008 Professional avec la construction dans le serveur de développement IIS. Windows Vista Business 64bit

Répondre

1

Ce n'est pas possible, lorsque vous reconstruisez et modifiez le contenu de vos bibliothèques, ils doivent être rechargés dans l'espace de processus. Cependant, dans .Net, vous ne pouvez jamais supprimer des assemblys d'un AppDomain une fois qu'ils sont chargés. Pour recharger votre bibliothèque, AppDomain doit être déchargé et chargé à nouveau. De plus, s'il y a des changements à votre web.config, cela déchargera/rechargera votre AppDomain.

Vous pouvez utiliser quelque chose comme pousser l'état de la session sur le serveur SQL afin que le recyclage AppDomain ne vous affecte pas. Vous pouvez le faire avec l'élément sessionState du fichier web.config.

+0

Merci pour l'idée de SQL Server sera quelque chose que je vais enquêter, mais la solution de Tomas fonctionne pour l'instant. – Phil

+0

Cela fonctionne réellement mieux. Juste changé de la méthode JS et je ne perds pas ma place dans l'application entre les redémarrages! :) – Phil

+0

Pour d'autres qui cherchent une solution à ce problème, consultez sessionState [mode = "StateServer"] comme une option rapide http://msdn.microsoft.com/en-us/library/ms178586.aspx – thebitguru

2

Je ne pense pas que ce soit possible, étant donné que l'application redémarre sur chaque build. Ce que vous pouvez faire, c'est ajouter un post-appel jQuery temporaire à la page de connexion, qui sera exécuté au démarrage.

$(function() { 
    $.post('/login/', { username: 'phil', password: 'noonewillguessthis' }); 
}); 

De cette façon, vous serez connecté au système "automatiquement" à chaque chargement de la page. N'oubliez pas de le supprimer avant de le déployer en direct ...;)

+0

Je vais devoir accepter un petit hack alors. Marquer comme la réponse si quelqu'un peut fournir une approche moins hackish;) – Phil

0

J'ai rencontré le même problème. J'utilise VS 2015 sur une machine. Je reconstruis/construis le projet et lors de mon premier débogage la première session générée est perdue. Pensez que je parle de 2 projets en pagination. la première page est "Default.aspx", la deuxième page est "Home.aspx".

  1. page Default.aspx est chargé en premier
  2. session [ "UserID"] est généré sur Default.aspx
  3. page est redirigé vers Home.aspx en utilisant Response.Redirect ("Home.aspx ", faux" code.
  4. session [ "UserID"] est cochée sur la fonction Page_Load l Home.aspx.cs si elle est existante ou non
  5. session [ "UserID"] n'existant .. perdu!

Solution:

J'instalé Visual Studio sur une autre machine et je construit le projet sur cette machine. En tant que résultat, le problème manquant est résolu. Les publications fonctionnent bien sur les serveurs aussi. Peut-être que ce problème provient de configurations Visual Studio ou de configurations de machines, je ne suis pas sûr mais l'installation de VS peut résoudre le problème.

Questions connexes