Question

Server object, ASP 0177 (0x800401F3) Invalid Class String

Asked by: dhsjphd

First of all, I have read all of the solutions I could possibly find for this issue.  Secondly, none of them work for me.

I am using: WinXP Pro SP2, VB6, ASP

Here is a breakdown of my problem:

- I have created a custom ActiveX DLL named DLObjects with a class named DLFactory.
- I have registered this DLL
- I created a COM+ application and set the Identity to the Administrator account
- I CAN instantiate the DLL with VB6
- I CAN NOT instantiate the DLL with ASP
- I have verified it is registered
- I have verified IUSR and IWAM accounts have access to the DLL folder
- I have used other third-party DLLs without an issue

Here is the abridged code:

<%
Dim Factory
Set Factory = Server.CreateObject("DLObjects.DLFactory")  '<-- Error here.  Yes, it is spelled correctly
Set Factory = Nothing
%>

As stated before, I am able to use this DLL without issue in VB6 on the same machine.  I am also able to copy to DLL to a Win2k3 machine, register, and use it in ASP.

This is driving me completely mad as I have been programming professionally for 13 years and have NEVER had an issue that has stumped me like this... I am sure it is something simple (but my pride hopes otherwise).  Any and all insights into this issue is more than appreciated.

Please remember that I have read and tried all of the solutions for this and none have worked so please do not suggest these basic-easy-to-find-already-checked answers:

- IUSR/IWAM Permissions
- Registering DLL / COM+
- Checking the spelling

Thanks again in advance for your help!!

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2005-11-01 at 07:16:54ID21615143
Tags

asp

,

0177

,

server

,

class

Topic

Active Server Pages (ASP)

Participating Experts
2
Points
500
Comments
18

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Activex Document distribution problem in VB6
    I have a Activex Document (Activex EXE in VB6) and I would like put on my home page so people can access it via .HTM file. I have followed VB deploy wiz. packing the Activex Doc as Internet package. I got .VBD, .CAB and .HTM file. I have made change to the .HTM file. It looks...
  2. ActiveX Controls
    Is it possible to use an activeX Control in side of an ActiveX DLL? Thanks, -rg
  3. GetObject problem with VB6 ActiveX exe
    I have written an ActiveX exe with VB6 and need to create a reference to it in an ActiveX dll. I have found some documentation that says you cannot create a reference to a running exe that has been written in VB. Has anyone found a way round this? I have seen an article tha...
  4. RegObj.RegKey Returns Invalid Class String in ASP but not…
    Hi Experts, I use the MS Registry Manipulation object to handle registry access in my ActiveX dll which I call via ASP. This works fine. However, if I write a function in ASP to do the same registry access I get the error "Invalid Class String". I have set IUSR_ to...
  5. Debug VB6 ActiveX dll from VS.NET
    Hello, I have a ActiveX COM dll that was created in VB6. I did not create it and I would like to debug it from VS.NET. I have the sourcecode and VB Project files. Is that possible and how? Thank you, **

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: aplimediaPosted on 2005-11-01 at 08:31:22ID: 15201229

whats the erro you are getting?

If
>- I CAN instantiate the DLL with VB6
>- I CAN NOT instantiate the DLL with ASP

Then I would have to suggest its a permissions thing! Sorry I did read your comments but logic says if you were able to instantiate the DLL with VB6 then it functions, and is registered.

Aplimedia

 

by: dhsjphdPosted on 2005-11-01 at 08:40:38ID: 15201310

aplimedia -

The error is:

Technical Information (for support personnel)

    * Error Type:
      Server object, ASP 0177 (0x800401F3)
      Invalid class string
      /testdll.asp, line 3

    * Browser Type:
      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

    * Page:
      GET /testdll.asp


I also thought that it was a permissions issue; however, I have added the IUSR and IWAM accounts to the permissions for the folder where the DLL resides... I have also tried compiling the DLL into the Inetpub folder where the ASP page executes.  I have also tried creating a COM+ application in Component Services and registering the component with an Administrator identity.

I appreciate your response... and look forward to your continued assistance in locating a solution!

 

by: dhsjphdPosted on 2005-11-01 at 08:47:41ID: 15201368

Update...

I compiled the DLL into the System32 directory with the same results.  This is where all other DLLs used in my applications are stored and used without issue.

<banging head against wall>

 

by: dhsjphdPosted on 2005-11-01 at 08:55:03ID: 15201418

Update...

Here is a sample snippet of code that DOES WORK with a DLL that resides in the same directory as the infamous DLObjects.dll:

<%
Dim Mailer
Set Mailer = Server.CreateObject("SMTPsvg.Mailer") '<-- Does not cause error
Set Mailer = Nothing
%>

However, when using the same ASP file pointing to the DLObjects.dll in the SAME folder as SMTPsvg.dll (system32) I get the error descibed in my original posting.

<%
Dim Factory
Set Factory = Server.CreateObject("DLObjects.DLFactory") '<-- Causes error
Set Factory = Nothing
%>

  :_(

 

by: aplimediaPosted on 2005-11-01 at 09:03:50ID: 15201491

Ok, I sort of take back the folder permission comment. If that were an isue the error would reflect it. Your error is consistent with the object not being registered on the machine. Now I know it is, but somehow IIS is not able to use it, or is denied access to it.

Let me take a look at the IIS control panel, you could do the same, I think the answer is there.

Aplimedia

 

by: aplimediaPosted on 2005-11-01 at 09:11:23ID: 15201563

ISAPI Filter - On the main IIS control panel

ISAPI stands for Internet Server Application Programming Interface. Basically, they are programs (non-cgi executables) written to interact & work with requets to a web server.

http://www.iis-resources.com/modules/wfsection/article.php?articleid=9

Let me know.

Aplimedia

 

by: dhsjphdPosted on 2005-11-01 at 10:06:08ID: 15202030

Aplimedia -

Thanks for the response... but I am a little confused now.  Are you suggesting that I register my DLL as an ISAPI filter to handle the IIS requests?  Or develop it as an ISAPI extension?

Currently, as I have in the past, I am using the IISScriptingContext to capture the ASP objects within my DLL to communicate with IIS and the client, therefore ecapsulating all business logic and rules into a portable, reusable object.  I have always, with this one exception, been able to use my DLLs just like any other third-party object.  I simply make the CreateObject call, the object captures the IISScriptingContext, reads the state, and handles the request.  Most of my ASP pages are simply three lines long!  This has been a highly successful way for me to develop applications.

I am annoyingly perplexed since this is not something new that I am experimenting with, rather a tried and true design.  So, I ask myself (and now the rest of you), why is it not working with this one DLObjects.dll??

So, to get back to your ISAPI comments... why are you suggesting I use ISAPI Filters/Extension?  I must admit that I am not familiar with them at all.

Thanks again for your continued assistance.....

 

by: peterxlanePosted on 2005-11-01 at 10:20:02ID: 15202165

dhsjphd -
I have built DLL's just as you have described and implemented them successfully.  From what I recall, I always would compile the DLL in the system32 directory.  I never had to set any permissions whatsoever to be able to create the objects through my ASP pages.  I do remember it being a nightmare when rebuilding an existing DLL.  I seemed to have to unregister, re-register the component, and then stop and start IIS to get it to work.  I built a batch script to automate this process during the development cycle.

I know you have stated that  you have confirmed that the DLL is registered (and clearly it is if you can instantiate it with VB), but have you tried unregistering it, and re-registering it?  Restarting IIS?  Or even just rebooting the server?  I realize that these are all obvious solutions, but figured I would throw them out there...

 

by: dhsjphdPosted on 2005-11-01 at 10:27:22ID: 15202244

peterxlane -

Thanks for the response... Yes, I have done all of the above.  Again, again, and again.  I simply have no clue why this renegade DLL is not operating properly.  I have also gone through ALL of the project settings in VB, all IIS settings, file system permissions, took a shower, had some coffee, rebooted again, scratched my head, rinsed and repeated.

The only thing I can think of that I have not tried it tossing my laptop out of the window.  But, really, I don't think that will help -- much.

Thanks again for the response.

 

by: peterxlanePosted on 2005-11-01 at 10:38:11ID: 15202339

Have you tried create a simple Hello World DLL from scratch with a different project name / class name and see if you can get that to work?

 

by: aplimediaPosted on 2005-11-01 at 10:39:47ID: 15202355

>dhsjphd

Before laptop execution, you might ry posting a question on

Home>All Topics>Operating Systems>Windows XP

This question is on the edge of ASP and much to do with the server and operating system.

Will keep looking

Kind regards

Aplimedia

 

by: dhsjphdPosted on 2005-11-01 at 11:18:50ID: 15202760

peterxlane -

I had not tried this since I have other components that were developed that are working fine.  However, just for fun, I did create a simple HelloWorld DLL in system32, registered the components, and browsed to the ASP page.

Low and behold, the same error message appears!!  What!??!

I have not dared to recompile an existing DLL to test whether this error appears afterwards.

This is becoming exponentially more frustrating.... thanks again for your assistance.

 

by: dhsjphdPosted on 2005-11-01 at 11:27:38ID: 15202840

Update...

I went to another desktop running Win2k and created another simple HelloWorld DLL, copied it to my machine, registered, and browsed to the ASP page.  Same error.  I did this to see whether it was my machine causing the problem during the compilation of the DLL... and it does not appear to be so.

Don't know if this information will help... thanks again.

 

by: dhsjphdPosted on 2005-11-01 at 12:03:43ID: 15203165

Update...

I copied my DLObjects.DLL to a Win2k desktop, registered, and browsed to the ASP page... shazam!  It works.  So, it is not a problem with the DLL but rather a problem with my OS/IIS/??

Thanks again for any assistance...

 

by: peterxlanePosted on 2005-11-01 at 12:07:15ID: 15203199

Oh, then it is a one step simple fix:

Reinstall OS

...what a nightmare! I can't imagine what is causing this issue...

 

by: dhsjphdPosted on 2005-11-01 at 12:20:14ID: 15203339

Ok... someone found a solution in one of the cross posts...

It was a permission issue on the registry key... how simple.  For more information: http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_21615548.html

Thanks peterxlane and Aplimedia for your assistance!  I am new to the point system... would it be customary for me to split points between the two of you for helping even though you didn't provide the solution?

Thanks again for your help.

 

by: aplimediaPosted on 2005-11-02 at 01:06:50ID: 15206609

@dhsjphd
For advice on closing the questions:

http://www.experts-exchange.com/help.jsp#hs5

Also, for future pointer questions you might like to take a look here.

http://www.experts-exchange.com/help.jsp#hi262

_____________________________________________________________

Glad you got the issue resolved, it was a real teaser. However I suspect a permissions thing from the start.

Aplimedia

 

by: dhsjphdPosted on 2005-11-02 at 06:55:00ID: 15208201

Update...

I added the IUSR and IWAM accounts to the HKEY_LOCAL_MACHINE branch with READ ONLY rights and set it to inherit all subkeys.  This keeps me from having to reset the permissions in the registry when recompiling the DLL.

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...