Well, that depends on which part of global.asa is failing. If it is only Session_OnEnd(), then see
Article #2078 for an explanation of the problem.
If you can't access the Request.ServerVariables collection in Application_OnStart() or Application_OnEnd(), see
KB #275519.
If you can't access network resources (e.g. a UNC or mapped drive letter file share, or a remote SQL Server) in either of the OnEnd() events, see
KB #277329 and
Article #2168.
If none of the methods in global.asa seem to be firing, then there are two common scenarios:
(a) there is a syntax or other error in the global.asa file, or
(b) the global.asa file resides in a folder that is NOT marked as an application.
If (a) is the problem, I suggest extracting the subs by themselves and running them in an independent ASP page... this will tend to weed out errors. However, my guess is that (b) is a much more common cause.
Another possibility is that you created the virtual directory using Visual InterDev (see
KB #188715).