I am working hard to put one of the last major features into my CRM Migration Manager and ran across some interesting issues today and the background information was equally interesting so I thought I’d share:
Error: System.Runtime.InteropServices.COMException
Using the exception-handling code ask documented in the CRM 2011 SDK (5.0.2), I received the following error after attempting to execute a query against CRM:
Timestamp: 4/3/2011 10:20:23 PM
Code: -2147220970
Message: System.Runtime.InteropServices.COMException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #7A49F455
Trace:
Inner Fault: Has Inner Fault
Now that’s a scary-looking error but what does it mean and what is that reference number?
I looked around the internet and found some interesting factoids on Develop 1 Limited’s blog which lead me to a little more troubleshooting of my own.
Error Reference Number
One of the issues we had with CRM 4.0 is trying to track down the exact error the user was seeing in the trace log file. After all, it could be megabytes in size and there could be many, many files.
This reference number seems to be randomly generated, is specific to your error, and helps you locate the error within the trace file.
Viewing CRM Trace File
So I next turned on Tracing within CRM, reproduced the error, then opened up the trace file and performed a search on that reference number mentioned in the error.
Here is what I found:
[2011-04-03 17:20:23.307] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread: 25 |Category: Platform |User: 00000000-0000-0000-0000-000000000000 |Level: Error | ExceptionConverter.ConvertMessageAndErrorCode>System.Runtime.InteropServices.COMException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #7A49F455: System.Runtime.InteropServices.COMException (0x8007054B): The specified domain either does not exist or could not be contacted.
[remainder of exception goes here but is omitted due to lack of relevance]
Conclusion
The issue actually had nothing to do with CRM itself. It turns out that my domain controller, running as a virtual server, was shutting off and since it could not find the domain controller, CRM could not validate the CRM server or my credentials.
The interesting thing about this is the discovery service worked just fine. It was only when I attempted to access CRM data that the issue arose.
I hope this helps someone else.