Monday, January 10, 2011

Loading COM components in your Web Service

I ran into an issue the other day where my Silverlight Mobile App was calling my web service that was trying to load a COM component. Ran fine when debugging locally under Cassini. However, once deployed to IIS, loading the COM component failed with the following error:

"Retrieving the COM class factory for component with CLSID {D6567EF8-0A6C-48E7-9288-A2463123C2F3} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0×80070005 (E_ACCESSDENIED))."  

The solution was to update my component using in Component Service adding permissions to IIS_USERS for my component.
Exact steps:

1. Start Menu->Run dcomcnfg.
2. Expand Component Services->Computers->My Computer –> DCOM Config.
3. Right-click on your component in the tree view, select properties and click on the Security Tab.
4. Under Launch and Activation Permissions, click the Edit button.
5. Click Advanced button, click Find Now Button.

Read more: Everything Silverlight