Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.VisualStudio.OLE.Interop.IServiceProvider'.
While launching Visual Studio 2012/2010 IDE, you might receive the below error message or VS IDE may just crash without any error message. I launched the devenv.exe in the debugger (https://msdn.microsoft.com/en-us/windows/hardware/gg463009) and took a crash dump (https://support.microsoft.com/kb/286350). You can also run the following command: cscript adplus.vbs -crash –sc "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"
After debugging I found the below Call Stack and exception:
0:012> !pe
Exception object: 0ded29fc
Exception type: System.InvalidCastException
Message: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.VisualStudio.OLE.Interop.IServiceProvider'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{6D5140C1-7436-11CE-8034-00AA006009FA}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
InnerException: <none>
StackTrace (generated):
SP IP Function
00000000 00000001 mscorlib_ni!System.StubHelpers.StubHelpers.GetCOMIPFromRCW(System.Object, IntPtr, IntPtr ByRef, Boolean ByRef)+0x2
00000000 00000001 UNKNOWN!Microsoft.VisualStudio.OLE.Interop.IServiceProvider.QueryService(System.Guid ByRef, System.Guid ByRef, IntPtr ByRef)+0x2
0B69A954 0F43C2D2 Microsoft_VisualStudio_Shell_11_0_ni!Microsoft.VisualStudio.Shell.ServiceProvider+<>c__DisplayClass1.<QueryService>b__0()+0x122
0B69A994 0F43C0E4 Microsoft_VisualStudio_Shell_11_0_ni!Microsoft.VisualStudio.ErrorHandler.CallWithCOMConvention(System.Func`1<Int32>, Boolean)+0x34
StackTraceString: <none>
HResult: 80004002
0:012> !do 0ded29fc
Name: System.InvalidCastException
MethodTable: 529b0670
EEClass: 52627fd0
CCW: 0a86e060
Size: 84(0x54) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Fields:
MT Field Offset Type VT Attr Value Name
529bafb0 4000002 4 System.String 0 instance 00000000 _className
529b9e9c 4000003 8 ...ection.MethodBase 0 instance 00000000 _exceptionMethod
529bafb0 4000004 c System.String 0 instance 00000000 _exceptionMethodString
529bafb0 4000005 10 System.String 0 instance 0ded2ac8 _message
529b3328 4000006 14 ...tions.IDictionary 0 instance 00000000 _data
529bb0f8 4000007 18 System.Exception 0 instance 00000000 _innerException
529bafb0 4000008 1c System.String 0 instance 00000000 _helpURL
529bb350 4000009 20 System.Object 0 instance 0ded2e3c _stackTrace
529bb350 400000a 24 System.Object 0 instance 00000000 _watsonBuckets
529bafb0 400000b 28 System.String 0 instance 00000000 _stackTraceString
529bafb0 400000c 2c System.String 0 instance 00000000 _remoteStackTraceString
529bc770 400000d 3c System.Int32 1 instance 0 _remoteStackIndex
529bb350 400000e 30 System.Object 0 instance 00000000 _dynamicMethods
529bc770 400000f 40 System.Int32 1 instance -2147467262 _HResult
529bafb0 4000010 34 System.String 0 instance 00000000 _source
529ba3d4 4000011 44 System.IntPtr 1 instance 0 _xptrs
529bc770 4000012 48 System.Int32 1 instance -532462766 _xcode
5296de4c 4000013 4c System.UIntPtr 1 instance f43c2d1 _ipForWatsonBuckets
529a0798 4000014 38 ...ializationManager 0 instance 0ded2aac _safeSerializationManager
529bb350 4000001 0 System.Object 0 shared static s_EDILock
>> Domain:Value 03199208:NotInit 067cd0b0:NotInit <<
The exception seems to indicate the crash was caused due to an interface not being found. This indicates that something's wrong with proxy/stubs on the machine. At least IServiceProvider is failing. IE is usually the owner of the IServiceProvider proxy.
From the dump, it showed devenv.exe process crashed shortly after loading: C:\Windows\SysWOW64\actxprxy.dll and C:\Windows\System32\mssprxy.dll
The issue turned out to be broken registration for IServiceProvider. The proxy-stub CLSID was wrong (it was referring to actxprxy.dll instead of ieproxy.dll on Windows 7 x64). Registering ieproxy.dll from an elevated cmd prompt resolved the issue. regsvr32 "C:\Program Files (x86)\Internet Explorer\ieproxy.dll"
On x86 systems, regsvr32 "C:\Program Files\Internet Explorer\ieproxy.dll"
Comments
Anonymous
April 11, 2013
Thanks, this works for me!Anonymous
April 21, 2013
Thanks, this worked a treat :DAnonymous
May 22, 2013
Cheers mate!Anonymous
October 24, 2013
Nice and easy!Anonymous
November 17, 2013
Many, many thanks, DankeAnonymous
November 17, 2013
After 8 hour google happy end!!!!!!Anonymous
November 20, 2013
Thanks, Its working.Anonymous
November 20, 2013
Thanks a lot! It's working for me!Anonymous
December 04, 2013
Count me in as another satisfied customer of this fix!Anonymous
December 09, 2013
Thanks, it's working for me!!Anonymous
January 05, 2014
Awesome!!! Thank you so much!Anonymous
January 23, 2014
Done..worked for me..Thanks a lotAnonymous
May 05, 2014
Thanks a lot. I have been stuck with this issue for months now. You are the boss.Anonymous
August 14, 2014
WORKED FINE WITH ME ,,,but dont forget to run CMD as "Run as an Administrator" ...then only it will work :)Anonymous
September 29, 2014
Thaks SUPERRRRRRRRRRR!!! Thanks a lot.-)))Anonymous
November 05, 2014
thanks superAnonymous
June 01, 2015
Thanks. You ended up the mystry. Thanks a lot.........