FIX: GPF on Session Expiration Using Active Server Pages (164495)
The information in this article applies to:
- Microsoft Active Server Pages
- Microsoft Internet Information Server 4.0
This article was previously published under Q164495 SYMPTOMS
Under certain circumstances, you may see a Genereral Protection Fault (GPF) when a session expires, or when Microsoft Internet Information Server is shut down.
CAUSE
This error is caused by a reference counting problem in Active Server
Pages (ASP, which can occur if you attempt store an array containing
objects in a Session variable. Consider the code example below:
dim Arr(1)
Arr(0) = Server.CreateObject("MyProgID.MyClassId")
Session("MyVar") = Arr
When the session ends, or is terminated by an Internet Information Server
shutdown, the object pointer is released. In addition, VariantClear() is
called on the Variant containing the array "Arr". This results in a second
attempt to release the object pointer stored in "Arr", and thus a GPF.
RESOLUTION
The best workaround for this problem is to avoid storing arrays of objects
in Session variables.
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
This bug was corrected in Windows 2000. REFERENCES
For the latest Knowledge Base articles and other support information on
Visual InterDev and Active Server Pages, see the following page on the
Microsoft Technical Support site:
Modification Type: | Major | Last Reviewed: | 5/2/2006 |
---|
Keywords: | kbASPObj kbBug kbfix kbiis500fix kbOSWin2000fix kbWebServer KB164495 |
---|
|