What is the best way to allow a user connecting to an IIS service to run a process that instantiates COM objects?

Running a COM-based process on the machine with an admin account works fine. However, hosting the application in IIS throws the following COM exception:

Retrieving the COM class factory for component with CLSID {yadda-yadda-yadda} failed due to the following error...class not registered.

The class is indeed registered. Works fine with admin account. I've done some reading, and it looks like I need to have the anonymous account use an admin account on the box. However, my admins are not wanting to do this due to security.

What's the best practice here? How do I set this up?

UPDATE: Btw, we tried setting the anonymous user as a local admin account but still received the error message.


I found the solution. Many forum posts suggested it was a permissions issue. However, this link revealed it was an AppPool issue. It turns out, you have to configure the application pool to allow 32bit applications. Our server is a 64bit server. If you go into the application pool's advanced settings, there is an option to "Enable 32-bit Applications". Set it to true. Boom! Worked like a champ after that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.