En ce qui concerne le stockage dynamique d'images temporaires et le nettoyage de leur système de fichiers sur un serveur Web: (en utilisant C# dans .NET 3.5).Comment utiliser et portée de global.asax (pour le nettoyage de fichier après la fin de l'application)
Il a été suggéré que j'utilise un fichier global.asax
pour gérer cela.
Je n'arrive pas à comprendre comment cela fonctionne.
J'ai deux applications distinctes ...
J'ai compris que le global.asax est censé être dans le répertoire racine du site.
Questions:
1) Comment je reçois le global.asax
à feu pour que ces deux applications spécifiques. 2) les deux applications doivent créer une liste de chaînes (les emplacements des fichiers), puis les supprimer à la fin de l'application. Est-ce que j'instancie ce tableau dans l'application, ou dans le global.asax
?
Mon code ressemblera à ceci:
List<string> fileLocations = new List<string>();
//I don't know where to put this.
//The next line of code will be in both applications (this could
//be called many times in one application session. The names of
//the files are generated from the clock (milliseconds and
//seconds combined, I might change this to use the actual
//random class combined with sessionID)
fileLocations.Add(file);
void Application_End(object sender, EventArgs e)
{
// Code that runs on application shutdown
foreach(string file in fileLocations)
{
if(File.Exists(file))
File.Delete(file);
}
}
Je suis confus au sujet de la façon dont le global.asax fonctionne réellement. Est-ce utilisé comme une interface?
Il n'y a donc pas de moyen simple de simplement détecter quand quelqu'un a fini d'utiliser une application et d'exécuter un script de nettoyage? Je pense que cela devrait être beaucoup plus facile que cela:/ – Dave
Eh bien, si l'utilisateur est connecté alors vous pouvez utiliser l'événement Session_End également dans Global.asax Par défaut, il est 20 minutes, mais vous pouvez définir votre propre limite. Voir http://stackoverflow.com/questions/621744/how-to-handle-session-end-in-global-asax et http://justgeeks.blogspot.com/2008/07/aspnet-session-timeouts.html –
Ah, d'accord. Donc, si je déclare une liste dans le fichier global.asax, instanciera-t-elle une nouvelle liste pour la session de chaque utilisateur, ou est-ce que je déclare la liste dans mon programme et que global.asax y a accès. Comme je l'ai dit, je m'excuse pour les questions de base ... Je suis généralement assez bon pour figurer ces choses sur mon propre mais pour une raison quelconque, le global.asax n'est pas très intuitif pour moi. – Dave