Object doesn’t support this property or method


This is a short post about a very strange support case I had. I should start by mentioning however that you could see the same error for other reasons, not least of which because you’ve mistyped the property or method name :-).

In this particular case the customer had a class ASP web application that used VBScript. It would work for a long period of time (like days) but then begin to experience errors like the following:


Microsoft VBScript runtime error ‘800a01b6’
Object doesn’t support this property or method: ‘<method name>’


These errors would become more and more frequent and the only solution my customer had found was to restart the process hosting the script. In his case that meant an IISRESET.

After much investigation and debugging we eventually figured out that he was hitting a variant of this issue:

You receive an error message if you try to start the VBScript engine from a Microsoft C++-based program on a Windows Server 2003 Service Pack 1-based computer

The underlying issue is specific to 32-bit processes that have a >2Gb address space available to them. Therefore this can occur both on 32-bit versions of Windows booted with the /3Gb switch in BOOT.INI as well as 64-bit versions of Windows where VBScript is hosted in a 32-bit process. (This is because 32-bit processes running on 64-bit systems have a 4Gb address space by default.)


The same underlying problem is also known to cause problems for the Scriptor component of Commerce Server:


FIX: You may receive a Scriptor component error message when you add the /3GB switch to the Boot.ini file on a Windows Server 2003 SP1-based computer that is running Commerce Server 2002 or Commerce Server 2007

HTH

Doug

Comments (13)

  1. Swamy says:

    Hi

    we are having the same issue with a classic ASP application that invokes a COM object executable to process the ASP calls and it works fine until quite some time and then throws the error Microsoft VBScript runtime error '800a01b6'  Object doesn't support this property or method: 'LabelStyleSheet'

    We have IIS 7 on windows 2008 R2 server 64 bit . Please help and advise how we can fix it.

    Thanks

    Swamy

  2. Hello Swamy, thanks for stopping by my blog!  The specific issue I looked at that led to that blog post was due to something that was fixed a long time ago in VB Script so I would be quite surprised if it is the same issue rather than just being something that has the same symptoms.

    Is your application pool running as 32 bit or 64 bit?

    Is LabelStyleSheet a method or property on the COM server?

    Is it always the same method or property reported in the error?

    What is the exact version of VBScript.Dll on your system?

    On a side note, you should be aware that just yesterday we released a critical update for VBScript technet.microsoft.com/…/MS14-084

    I am not saying that will fix this specific issue for you but I would certainly recommend it and it would also get you on the most recent broadly available VB Scripting engine.

    Regards

    Doug

  3. Swamy says:

    Hi Doug – Thank you so much for responding.

    Here are the details of our application:

    1. The application pool in classic mode and is running with Enable 32 bit applications set to TRUE

    2. I am assuming it is a method and the it is the same line in the code that is giving error (we got it three times so far almost weekly once) – here is the ASP  code snippet

    <td class="section-header-middle" align="right" valign="middle">

                           <%BuildControl("CSM_REQUIRES_FOLLOWUP", "requires_followup", cfFol_lRequiresFollowup, cfCIn_bGeneralReadOnly, cfGen_oTabIndex.NextIndex(), GetTranslationData("CASE_REQ_FUP"))_

                               .LabelStyleSheet("label label-section").OnClick("fn_Requires_Followup").OnClick("fn_Requires_Followup();").Render() %>

                       </td>

    3. It is the same method/property that is reported always

    4. The file version of VBScript.Dll is 5.8.7601.18337 Product version 5.8.7601.18337 size 596Kb Date Modified 12/9/2013 9:28PM

    Thank you very much for your attention to this

    Swamy

  4. Hello Swamy

    That is quite a complex, compound piece of inline script. It looks like BuildControl (whatever that is) is not returning the type of object or interface you are expecting it to.  On the face of it, it does not look to be the same issue as the one I blogged about here  

    Do you know what programming framework the application was written with? For example is it custom script and COM objects or was it Web Classes or something else?

    Doug

  5. Swamy says:

    Hi Doug

    It is an application that uses classic ASP pages, COM objects and a portion of it uses .NET framework but uses a different app pool for it. There is an executable that gets kicked off for these ASP requests and that executable utilizes COM objects. It is an application from a vendor and we dont have much insight into most of the code except for the ASP pages code.

    We have 10 web servers in load balancer farm (least connect algorithm) and about 1300 users using it. This runs fine for weeks and suddenly the users get this error from one of the web servers. We go into and restart the COM object process things are corrected.

    Thanks

    Swamy

  6. Is there a single COM object process per server or is it a single one on a common servers that the web servers talk to over DCOM? Have you considered controlled recycling of the servers as a pre-emptive mitigation?

  7. Swamy says:

    Hi Doug

    There is a single COM object process per server. So every web server has one process running. We do not generally recycle the servers since it is a 24×7 application with users all around the globe. Is there something we can do prevent this?

    Thanks for your help

    Swamy

  8. With the issue being quite intermittent it could be a pretty tough one to investigate and resolve. With 10 servers available to you, you ought to be able to come up with a scheme whereby you gradually direct load to 9 of the 10 servers, then take the 10th one out of rotation once there is no load on it and then recycle it (or at least the key processes on it – web/COM. Then bring it back in rotation. Not ideal but pragmatic.  The other thing to look at would be general signs of unhealthiness on a server when it starts exhibiting the error, e.g. high process memory, high handle counts, things like that.

  9. Swamy says:

    Hi Doug

    Thanks for your help! We are following your recommendation now. The thing it is after the fact. The users already have faced the issue and damage is done. I was trying to see if there are ways we can prevent this from happening. I also put in a monitor for HTTP 500 errors from the servers.

    Thanks

    Swamy

  10. Kedar says:

    Hi Doug

    I am trying to implement a Classic ASP Project on II8.5 on Windows Server 2012 R2.

    While launching the DashBoard.asp, Getting error

    Object Doesnt Support Property or method : Server.MapPath("")

    The Project is working fine on IIS7.5 on Windows 2008 Server R2. But Failing on II8.5 on windows2012. Have Done all the respective setting Required for Classic ASP to execute on IIS8.5 server, Still getting the same issue.

    Can You please Guide, Why Server Object Methods are not getting recognized on IIS8.5?

    I am getting same error for below as well :

    Set fso = CreateObject("Scripting.FileSystemObject")

    Set folder = fso.GetFolder(xdefPath)  ' Gives error

    Set WSHShell = CreateObject("WScript.Shell")

       value = WSHShell.RegRead( strRegistryKey ) ' gives error

    The above code is a part of global.asa written in vbScript.

    Request to please help!!!

  11. Hello Kedar, unfortunately I am not able to offer support on this via my blog.  For the Server one, it sounds like IIS intrinsics objects are not available. I don't know whether these became option features in later versions of IIS – perhaps you need to add them.  For the FSO, I don't recall what DLL implementat that  – you might need to research that and figure out if it is registered correctly. For WScript.Shell, the same might apply but I am not sure that component was intended to be used in a non-interactive environment like server side ASP so you might run into issues

  12. Parekar says:

    I am also facing the same issue in Argus Safety while opening the cases. VBScript runtime error 800a01b6 is shown. This kind of error is visible in few servers. Can you tell me the exact cause of this? Is there any solution for the same?

    1. Parekar, this is a long time ago but as far as I recall in my case it was quite an obscure bug in vbscript. Unfortunately the error message (title of the post) is very generic and could be caused by all sorts of script level issues. If your application pool is already running as 64-bit then I suspect you are not hitting the issue I debugged in 2009.

Skip to main content