ASP_0147|500_Server Error

Posted on 2004-10-26
Last Modified: 2012-06-21
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.
Question by:Cordoe
    LVL 6

    Expert Comment

    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?

    Author Comment

    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.
    LVL 14

    Expert Comment

    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.

    Author Comment

    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?


    Author Comment

    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?

    LVL 14

    Accepted Solution

    "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.

    Author Comment


    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.  

    Author Comment

    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.
    LVL 14

    Expert Comment

    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".

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone. Privacy Policy Terms of Use

    Featured Post

    What Security Threats Are You Missing?

    Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

    Lync server 2013 Backup Service Error ID 4049 – After File Share Migration
    When it comes to showing a 404 error page to your visitors, you do not want that generic page to show, and you especially do not want your hosting provider’s ad error page to show either. In this article, I will show you how to enable the custom 40…
    Hi everyone! This is Experts Exchange customer support.  This quick video will show you how to change your primary email address.  If you have any questions, then please Write a Comment below!
    This video is in connection to the article "The case of a missing mobile phone (". It will help one to understand clearly the steps to track a lost android phone.

    875 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    12 Experts available now in Live!

    Get 1:1 Help Now