Error Messages/43034


Example error messages

Access denied when attempting to instantiate the COM object "ADE4.CAEngine" on the remote computer "beowulf" 
using the user credentials "acme\angel".

Access denied when attempting to instantiate the COM object "ADE4.CAEngine" on the remote computer "beowulf".

Cause

This error occurs when COMCreateObject fails to create the requested COM object on a remote computer due to access permissions not allowing remote creation of the indicated DCOM object. If you get this error, it probably means that your client computer is able to communicate with the server (i.e., there is a network connection between them, and you have the server name correct, and communication isn't being blocked by a firewall), but security settings do not allow this remote invocation.

Debugging this problem can be extremely difficult. The error itself is extremely vague, and provides little guidance for figuring out what is mal-configured. The space of possibilities is immense, and is impacted by your now security configurations, network configurations, and operating system, all of which have many variations.

Remedies

Check these things no the server computer:

  1. Run DCOMCNFG. (Component Services/Computers/My Computer/DCOM Config )
  2. Find the component in the list of COM components.
    Not listed? Your component needs to be installed on your server computer.
  3. Click on the component and select Properties / Security
  4. For the sections Launch and Activation Permissions and Access Permissions, select Customize and Edit.... Make sure the permissions allow your user credentials to access, launch and activate. While debugging within a private network, you might want to grant the user Everyone full permissions, then restrict this later after you've solved he problem.
  5. Make sure DCOM is enabled on the server computer. Run REGEDIT and navigate to
    HKLM/SOFTWARE/Microsoft/Ole
    ensure that EnableDCOM is a REG_SZ set to "Y".

If these changes don't fix the problem, make sure the user accounts match on the two computers. If your user account on the client computer doesn't exist as an account on the server, you may need the specify the user name and password for an account on the server computer in the call to COMCreateObject.

If you encounter this problem and find a solution not already listed here, please add it here so that other people can benefit from your experience.

Approaches to Debugging

When the Remedies above aren't enough, you will need to debug further.

On the server computer, run Event Viewer. Scan for any errors that were logged at the time you attempted the call, especially in the Windows / Application logs.

You may want to do web searches on "DCOM and E_ACCESSDENIED", along with aspects of your own configuration that might be relevant.

If you have other debugging tricks that might be helpful for people debugging this problem, please list them here.

See Also

Comments


You are not allowed to post comments.