Could not create CDO.Message object – System.Web.Mail.SmtpMail

Could not create CDO.Message object – System.Web.Mail.SmtpMail

 

"Could not create 'CDO.Message' object" most likely means the CDO object is not properly registered or installed or both. On my Win2k workstation, checking the registry, the CDO.Message refers to the cdosys.dll located in the win system32 directory.

 

Then try to register cdosys.dll component:

 

C:\WINNT\system32>regsvr32 cdosys.dll

 

If success, then it’s done.

 

But if you got the following error message:

DllRegisterServer in cdosys.dll failed.

Return code was: 0x800704da

 

Solution from Microsoft Support:

Based on the research and experience, there are several versions of CDO, which may not be able to coexist on the same machine. For more details regarding the CDO versions, please refer to:

 

Title: Collaboration Data Objects Roadmap

URL: http://msdn.microsoft.com/library/en-us/dncdsys/html/cdo_roadmap.asp

 

In order to resolve the issue, you can find the CDO file current registered, un-register it, and then re-register the file CDOSYS.DLL.

 

In order to find/un-register the CDO file current registered, you may refer to the following steps:

 

1. Launch Regedt32.exe from “Start” -> “Run”.

2. Navigate to HKEY_CLASSES_ROOT\CDO.xxxxxx (CDO.xxxxxx represents a registry item, i.e. CDO.Address), copy down the default value of the key CLSID (i.e. {CD000110-8B95-11D1-82DB-00C04FB1625D}).

 

3. Navigate to HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} (Note: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} represents the value got in step 2.)

 

4. The default value of the sub-key “InprocServer32” is the path of the target file.

5. Un-register the file with the command line “Regsvr32 -u xxxxx.dll”.

 

After un-registering the file, you can try to register the file CDOSYS.DLL again, and it should work fine.

 

Take my local machine as an example:

C:\WINNT\system32>regsvr32 -u C:\PROGRA~1\COMMON~1\MICROS~1\CDO\CDOEX.DLL

Note the path of the above CDO DLL is from in step 2.

 

C:\WINNT\system32>regsvr32 cdosys.dll

Then it works fine.

 

Source links:

1. Developer fusion, http://www.developerfusion.co.uk/forums/topic-15962

2. dotnet247.com, http://www.dotnet247.com/247reference/msgs/28/141472.aspx

 

posted @ 2005-10-29 03:02  Rickie  阅读(2200)  评论(1编辑  收藏  举报