On the subject of dynamically storing temporary images and handling their cleanup on a web server's file system: (using C# in .NET 3.5).
It was suggested that I use a global.asax
file to handle this.
I just can't figure out how this thing works.
I have two separate applications...
I have figured out that the global.asax is supposed to be in the root directory of the website.
Questions:
1) How to I get the global.asax
to fire for only these two specific applications.
2) both applications need to create a list of strings (the file locations) then delete them on the application termination. Do I instantiate this array in the app, or in the global.asax
?
My code will look like this:
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);
}
}
I am confused about how the global.asax actually works. Is it used like an interface?
A good place to look at how to use Global.asax is to read the ASP.NET Quickstart on it's usage. You have one per web application / site. It's kind of like Global level events.
Be aware, the Application_End event will not fire often, on most servers. It will only fire if the IIS app pool is unloaded/recyclyed, web.config modified , assemblies changed in /Bin,or someother situation where the webserver stops. On a popular site it could be weeks, months before your event ever fires.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With