2009-03-18 8 views
0

J'ai une application .NET qui permet aux utilisateurs de télécharger des images dans un répertoire dans la webapp et ensuite les voir. Le problème est que la session est perdue lorsque je télécharge ou supprime une image dans le répertoire webapp. Il semble que le pool d'applications soit recyclé lorsque j'ajoute des images, et pas seulement des fichiers config ou cs.Session et le pool d'applications: une application ASP.NET qui stocke et affiche des images

J'ai vu cette technique utilisée dans tant de tutoriels que je me demande si cela fonctionne réellement avec les bons paramètres du serveur, ou si c'est une technique complètement défectueuse.

Si j'ajoute manuellement une image à un sous-répertoire ou si je l'efface manuellement, la session est conservée. Si j'ajoute l'image à un sous-répertoire via Visual Studio, la session reste, mais si je la supprime via Visual Studio, la session est perdue.

Si je télécharge les images dans un dossier en dehors de la webapp, je ne peux pas les afficher dans les balises img.

Je serais intéressé d'entendre ce que vous pourriez faire pour contourner le problème.

+0

Que voulez-vous dire par « la suppression par Visual Studio »? Vous voulez dire "dans le code"? –

+0

Désolé pour la réponse tardive. Je veux dire en utilisant l'interface de Solution Explorer. – NetHawk

Répondre

1

Essayez de stocker la session dans un processus hors état. Vous pouvez le faire en lançant le « Service d'Etat ASP.Net » dans l'écran Services de « Outils d'administration », puis en utilisant cette ligne dans votre web.config:

<sessionState 
      mode="StateServer" 
      stateConnectionString="tcpip=127.0.0.1:42424" 
      cookieless="false" 
      timeout="20" /> 

Cela permettra à vos sessions de persister, même si vous réinitialisez IIS.

0

Vous pouvez stocker des informations telles qu'un ID d'image dans un champ asp: HiddenField ou un objet .Attribute [] dans un contrôle. Lorsque j'ai besoin de lier un bouton à un élément spécifique dans une liste, par exemple, je donne au bouton un attribut qui reflète l'ID de l'élément en question. J'utilise HiddenFields pour d'autres informations qui n'ont pas de contrôle associé (c'est-à-dire des ID de poste, etc.).

1

Je vérifie le journal des événements pour vous assurer quelque chose que vous faites n'écraser la AppPool

Questions connexes