Way to automatically recycle aspnet_wp work process when close to 100% CPU for certain period of tim

  • Thread starter Thread starter Luther Miller
  • Start date Start date
L

Luther Miller

I have a server setup that is dedicate to providing a "proxy" by exposing a
web service that calls methods in a 3rd party ActiveX control and then
returns the results. Sometimes, the aspnet_wp work process seems to get
"hung" - it goes to close to 100% CPU and stays that way. Under these
circumstance, it appears that it is really the ActiveX control causing the
problem. Running IISRESET from the command line resolves the issue, for a
while, at least.

1) Is there a way to configure ASP.NET so that if the worker process is
detected at very high CPU (>80%) for longer than a certain period of time,
it will automatically recycle it?
2) I think it might be a threading issue. Is there an attribute I can set in
a Web Service, or in a configuration file, so that it will work better with
Active X controls?
 
My $0.02 is below...

1) Is there a way to configure ASP.NET so that if the worker process is
detected at very high CPU (>80%) for longer than a certain period of time,
it will automatically recycle it?

Not a built-in way (at least that I've ever heard of), but you could
consider writing a windows service that kills it periodically. Probably not
the ideal approach.
2) I think it might be a threading issue. Is there an attribute I can set in
a Web Service, or in a configuration file, so that it will work better with
Active X controls?

If the problem is the ActiveX control itself, I'd advise just find another
component that does the job for you and stop using the one causing the
problem. I'm sure you thought of that, so if instead the problem IS being
cause by calling the control on multiple threads and possibly causing
concurrency errors, then simply wrap your calls to that component in a
function that uses a Mutex to prevent multiple threads from trying to use it
simultaneously. Mutex is, of course, explained in the MSDN help.

-jv
 
Unfortunately I am stuck with the ActiveX control - it is for access to a
3rd party data provider, and there are no other options in this case.
Interestingly, I believe that the problem may be an STA vs. MTA issue.

I am suspicious that the control is designed for STA use. Web Services will
call COM components using MTA by default. There does not appear to be an
easy way to change this behavior (see
http://support.microsoft.com/default.aspx?scid=kb;en-us;303375).

However, it looks like I will have to find one...
 
Back
Top