It's not everyday that a Business Intelligence Studio Developer runs into an Issue which he cannot troubleshoot and fix it all by himself. My friend called into my cell number on a Sunday night , while I was relaxing on my couch watching the Latest episode of Dexter. From his frustrated voice on the other end , I could figure out that he had tried almost every action of basic troubleshooting. The problem he was facing , was something like this :
When trying to create a New SSIS package using Business Intelligence Studio 2008 on a Windows 2003 Server Enterprise Edition (x86) machine , there was error thrown by the Package designer :
"Microsoft Visual Studio is unable to load this document. Exception has been thrown by the target of the invocation."
My friend in his pale voice spoke , "Ajay , can you please take a look into this yaar ?"... Well , anything for a friend. Switched off the Dexter , "Dexter can wait !" I said and I swithced on my PC to start a Live meeting and to get started with some remote troubleshooting( Free-unpaid-support is what I could call this as ).
As soon as the Live meeting started , he was able to reproduce the issue for me and there it was , the Error message! "Well" , I though and decided to get started by Installing the Debugging tools for Windows (32bit). I knew I would also need to download the PSSCOR2 debugging extension.
Listing my steps to troubleshoot the issue :
adplus -crash -p 456 - fullonfirst
Now that I had the dump files , I opened Windbg and loaded the PSSCOR2 Extension after loading the dump file. Here's what happened next :
First task was to print the exeception using the !pe command :
0:000> !peException object: 0481e76cException type: System.Reflection.TargetInvocationExceptionMessage: Exception has been thrown by the target of an invocation.InnerException: System.ArgumentException, use !PrintException 048141e4 to see moreStackTrace (generated):<none>StackTraceString: <none>HResult: 80131604
Next , moving on to print the exception 048141e4
0:000> !PrintException 048141e4Exception object: 048141e4Exception type: System.ArgumentExceptionMessage: Font 'Verdana' does not support style 'Regular'.InnerException: <none>StackTrace (generated): SP IP Function 00162FB8 70DC22EF System_Drawing_ni!System.Drawing.Font.CreateNativeFont()+0x10192f 00162FC8 70CC01B8 System_Drawing_ni!System.Drawing.Font.Initialize(System.Drawing.FontFamily, Single, System.Drawing.FontStyle, System.Drawing.GraphicsUnit, Byte, Boolean)+0xb8 00162FF8 70CB3DA6 System_Drawing_ni!System.Drawing.Font.Initialize(System.String, Single, System.Drawing.FontStyle, System.Drawing.GraphicsUnit, Byte, Boolean)+0x56 00163020 70D76A4F System_Drawing_ni!System.Drawing.Font..ctor(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)+0x25f
Was interested to see what would the Dump Object on 048141e4 reveal , hence
0:000> !do 048141e4Name: System.ArgumentExceptionMethodTable: 6de97354EEClass: 6dc64294Size: 76(0x4c) bytes (C:\Windows\assembly\GAC_32\mscorlib\188.8.131.52__b77a5c561934e089\mscorlib.dll)Fields: MT Field Offset Type VT Attr Value Name6deb0ae8 40000b5 4 System.String 0 instance 00000000 _className6deaff5c 40000b6 8 ...ection.MethodBase 0 instance 00000000 _exceptionMethod6deb0ae8 40000b7 c System.String 0 instance 00000000 _exceptionMethodString6deb0ae8 40000b8 10 System.String 0 instance 0481e5c0 _message6deaa444 40000b9 14 ...tions.IDictionary 0 instance 00000000 _data6deb0c7c 40000ba 18 System.Exception 0 instance 00000000 _innerException6deb0ae8 40000bb 1c System.String 0 instance 00000000 _helpURL6deb0704 40000bc 20 System.Object 0 instance 0481e700 _stackTrace6deb0ae8 40000bd 24 System.String 0 instance 00000000 _stackTraceString6deb0ae8 40000be 28 System.String 0 instance 00000000 _remoteStackTraceString6deb2d34 40000bf 34 System.Int32 1 instance 0 _remoteStackIndex6deb0704 40000c0 2c System.Object 0 instance 00000000 _dynamicMethods6deb2d34 40000c1 38 System.Int32 1 instance -2147024809 _HResult6deb0ae8 40000c2 30 System.String 0 instance 00000000 _source6deb33b0 40000c3 3c System.IntPtr 1 instance 0 _xptrs6deb2d34 40000c4 40 System.Int32 1 instance -532459699 _xcode6deb0ae8 40001ec 44 System.String 0 instance 00000000 m_paramName
0:000> !do 0481e5c0 Name: System.StringMethodTable: 6deb0ae8EEClass: 6dc6d65cSize: 130(0x82) bytes (C:\Windows\assembly\GAC_32\mscorlib\184.108.40.206__b77a5c561934e089\mscorlib.dll)String: Font 'Verdana' does not support style 'Regular'.Fields: MT Field Offset Type VT Attr Value Name6deb2d34 4000096 4 System.Int32 1 instance 57 m_arrayLength6deb2d34 4000097 8 System.Int32 1 instance 48 m_stringLength6deb17c8 4000098 c System.Char 1 instance 46 m_firstChar6deb0ae8 4000099 10 System.String 0 shared static Empty >> Domain:Value 03b32dc0:04641198 <<6deb1718 400009a 14 System.Char 0 shared static WhitespaceChars >> Domain:Value 03b32dc0:046417a8 <<
This error message gave me a hint that it was an issue related to probably a corrupted font on my friend's machine. Hence without any further thoughts , I went directly into the "C:\WINDOWS\Fonts" folder and started looking for the Verdana fonts. I could notice that there were 3 types of fonts for Verdana.
I compared the same location on my virtual Windows 2003 OS and found the following fonts for Verdana :
Damn !!! The Missing font was Verdana ( True Type) . I copied this font from my machine and pasted into the fonts folder on my Friend's faulty server machine. The next few clicks of my mouse were so fast and rapid , as I tried to launch BIDS 2008 again and created a New SQL Server Integration Service Project. Eureka !!! The SSIS designer was now loaded sucessfully.
The issue was thus resolved. I didn't look into this further ahead to understand ( poke in ) what would have caused such a wierd issue in the first place. My Friend promised me a treat next time we meet and hung up on me. I wanted to see if I could get to watch the remaining minutes of Dexter... aaahhh... by the time I could get load the screen , the end credits were in play :)