ASP_0147|500_Server Error

Cordoe used Ask the Experts™
Running IIS 5.0 on w2k server...

I keep finding ASP_0147|500_Server errors in the log.  I have searched the web, and I cannot find out what that error refers to.  It happens really inconsitantly, so I have not been able to trace it to one page.  It seems to be causing problems with the web server, because every so often our site will not load, and it will say, "Not enough storage is available to complete this operation."  There is plenty of hard disk space left, as well as memory.  So, I am not sure what the problem is.  Any help you can give me would be appreciated.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Kinda cryptic hugh?  I don't really have an answer, but this link explains how to make those errors a little more readable,

Also, have you installed Urlscan or the IIS lockdown tool?


I have both UrlScan and IIS lockdown tool installed.  I looked through the UrlScan logs, and there doesn't seem to be anything out of the ordinary.  Can anyone please tell me what ASP_0147|500 means?  Thanks.
They're pretty generic errors.  ASP_0147 is an asp error code meaning "server error".
The 500 is a HTTP error meaning "internal error".

If you follow through nihlcat's instructions on how to turn off friendly http error messages in your browser you may be able to get a more comprehensive error description if you hit the problem page while it's having a problem.

If you're lucky your iis log may also show up ado errors (eg: 80004005, etc) that might give you a better idea of what the problem is.

Most common causes I've seen are database connectivity/response problems.  Check your database connectivity out, especially that the connection strings being used are correct and operational when tested.
Announcing the Winners!

The results are in for the 15th Annual Expert Awards! Congratulations to the winners, and thank you to everyone who participated in the nominations. We are so grateful for the valuable contributions experts make on a daily basis. Click to read more about this year’s recipients!


I already have turned off friendly http error messages.  The error it gives me when I view a page is "Not enough storage is available to complete this operation."  There is plenty of hard disk space left, as well as memory.  

The majority of the errors in the log seem to start right after a webbot has read the site.  Has anyone heard of webbots causing problems?



I watched the Task Manager during the most recent crash, and there are many copies of dllhost.exe running under the IWAM_XXX account.  When the server goes down, the dllhost.exe file uses approx. 50% of the CPU and the mem usage can get as high as 600,000K.  Has anyone else dealt with this?

"not enough storage" is generally a memory problem which sounds about right looking at your memory usage.  It sounds like part of your site has a memory leak (i.e. failing to release resources).  

What you can try is switching the application protection on content directories you think -may- have problem content over to high.  (IIS Management console, right click directory, properties, Home/Virtual Directory, "Application Protection").
This will set each of the directories up in separate memory spaces and each will show up as a separate component in component services.  The other benefit is that one "application" crashing should not cause the whole site to fall over.

Identify the problem dllhost.exe thread in task manager or use performance monitor logging to track memory use over time.  
Get the process id (pid) of the problem dllhost.exe and then open the component services
snapin for mmc.  
Drill down to "com+ applications" and switch your view on the right hand side over to "status view" to show the process id's of each thread.  Match up the name column to the pid you identified earlier and you've found your problem site.  

Then you need to look at your code and pinpoint the problem.  The best place to start is making your code more efficient, if you need some ideas let me know.



Thanks!  I really appreciate your help.  I continue to work with component services and see what I can find.  

The problem is, I'm not the only one writing code on this server.  But, I'll keep looking.

Thanks again for your help.

If I have any other questions, I"ll post them.  


One quick question...  I've looked, but can't find the answer.  What causes IIS to create a dllhost.exe file? Is it everytime someone visits a different folder within the web?  And, if the person leaves the folder, should that kill the dllhost file?

Thanks again.
It's the isolation/application protection mode I mentioned earlier.  
"low" = in-process applications and will run in the IIS process (inetinfo).
"medium" = pooled out-of-process applications and will get 1 dllhost thread for all the pooled applications.
"high" =  isolated applications and will get 1 dllhost thread EACH.

If you open up component services (in administration tools) you'll see a list of IIS components under COM+ Applications.  
Webs/Web Directories running in High app isolation have components that look like:
IIS-{Web Description//Root/AppName}

The dllhost thread will appear when the "application" is first activated.  i.e. after a user accesses a page in that site.  
You can see this in action after an IIS reset by clicking on "COM+ Applications" in the left hand pane and making sure you are seeing "status view" in the right hand pane.  When the applications are activated the component icon will start to spin and a process id will come up beside them.

As for dllhost shutdown, I think it's basically until it crashes, gets shutdown manually or an IISReset occurs unless you have configured timeouts.  The default setting is "Leave running when idle" on IIS created components.  
Change timeout is done in component services by right-clicking the component, properties, advanced: "Minutes until idle shutdown" setting.  I would recommend using the default value (3) if you change this.

"manual" shutdown of a particular dllhost thread is by one of the following 3 methods:
-going through IIS console to the application, and clicking "unload" on the directory tab,
-killing the dllhost.exe thread,
-right clicking the component in component services and selecting "shutdown".

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial