|
| IIS Timeout |
 |
Mon, 24 Jul 2006 14:15:51 +000 |
Hi, guys:
I have an ASP page which calls a COM component. Recently, I noticed that after
sessein timeout, I can not call one method in that component anymore. I noticed
that this happens on IIS 5.1 or later, and I do not have the problem with the
previous IIS versions. Originally, I store the instance of the component in the
seesion object. After the problem occured, I changed the ASP page and just let
the instance in the page, and still have the problem. Also, if I tried to use
the page just after timeout, there is no problem. I have to wait about 20 to 30
minutes to have the problem occured. This COM component calls several normal
third party DLLs.
My questions are do you guys know what IIS does after timeout? How does it
release or re-load a DLL?
Thanks,
Zhen
|
| Post Reply
|
| Re: IIS Timeout |
 |
Mon, 24 Jul 2006 15:42:20 +000 |
What language is your COM component written in? Also do you know what the
threading model is? Unless it is free threaded you shouldn't store it in the
Session as you'll have threading issues.
Are you getting an error message trying to call the component?
|
| Post Reply
|
| Re: IIS Timeout |
 |
Mon, 24 Jul 2006 15:43:12 +000 |
First off, be very careful when storing objects in Session vars:
http://www.aspfaq.com/show.asp?id53
Second, if the object is just within the page scope, the session should have no
affect on the object. Check your code again to make sure it's not relating the
object to the session anywhere.
|
| Post Reply
|
| Re: IIS Timeout |
 |
Mon, 24 Jul 2006 20:34:08 +000 |
My COM Component was writen in C++. It uses Apartment thread mode. In my changed
ASP page (not save the object in the session), I do call 'set myObj = Nothing'
to release. After running the statement and timeout occurred, I checked the DLLs
in the memory, I noticed that the third party DLLs were still in the memory. The
temporary solution is restart IIS. I wonder why the DLLs were still in the
memory even after releasing the object. The error messages are "Microsoft
VBScript runtime error '800a01fb'", looks like an ADO error, then the
failed statement position in the page and the failed function number in the COM
component.
Zhen
|
| Post Reply
|
| Re: IIS Timeout |
 |
Tue, 25 Jul 2006 08:26:58 +000 |
The DLL stays in memory cos IIS caches them for performance. Not too sure what
might be causing the error in your DLL really.
|
| Post Reply
|
|
|
|
|
|
|
|
|
|