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 :
- Once the Debugging tools for Windows were installed , I opened a command prompt and traversed to the location where the debugging tools were installed.
- Started the Business Intelligence Studio 2008 and opened the task manager to get the Process ID for the DEVENV.exe. In this scenario , the PID was 456
- In the Command Prompt , typed in the following to capture the crash dumps for the error that will be seen on the BIDS 2008 Designer Screen :
adplus -crash -p 456 - fullonfirst
- As soon I hit enter , the debugger was attached to the DEVENV.exe process and started monitoring it for any first chance exceptions that might be raised.
- Now going back to the BIDS 2008 , Tried to create a New SQL Server Integration Services Project.
- Within a few seconds , the error message was shown on the Visual Studio Screen.
- Closed the BIDS 2008 and looked into the Debugging tools for Windows folder. aaah ! there were dump files captured in there.
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 :
Exception object: 0481e76c
Exception type: System.Reflection.TargetInvocationException
Message: Exception has been thrown by the target of an invocation.
InnerException: System.ArgumentException, use !PrintException 048141e4 to see more
Next , moving on to print the exception 048141e4
0:000> !PrintException 048141e4
Exception object: 048141e4
Exception type: System.ArgumentException
Message: Font 'Verdana' does not support style 'Regular'.
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 048141e4
Size: 76(0x4c) bytes
MT Field Offset Type VT Attr Value Name
6deb0ae8 40000b5 4 System.String 0 instance 00000000 _className
6deaff5c 40000b6 8 ...ection.MethodBase 0 instance 00000000 _exceptionMethod
6deb0ae8 40000b7 c System.String 0 instance 00000000 _exceptionMethodString
6deb0ae8 40000b8 10 System.String 0 instance 0481e5c0 _message
6deaa444 40000b9 14 ...tions.IDictionary 0 instance 00000000 _data
6deb0c7c 40000ba 18 System.Exception 0 instance 00000000 _innerException
6deb0ae8 40000bb 1c System.String 0 instance 00000000 _helpURL
6deb0704 40000bc 20 System.Object 0 instance 0481e700 _stackTrace
6deb0ae8 40000bd 24 System.String 0 instance 00000000 _stackTraceString
6deb0ae8 40000be 28 System.String 0 instance 00000000 _remoteStackTraceString
6deb2d34 40000bf 34 System.Int32 1 instance 0 _remoteStackIndex
6deb0704 40000c0 2c System.Object 0 instance 00000000 _dynamicMethods
6deb2d34 40000c1 38 System.Int32 1 instance -2147024809 _HResult
6deb0ae8 40000c2 30 System.String 0 instance 00000000 _source
6deb33b0 40000c3 3c System.IntPtr 1 instance 0 _xptrs
6deb2d34 40000c4 40 System.Int32 1 instance -532459699 _xcode
6deb0ae8 40001ec 44 System.String 0 instance 00000000 m_paramName
0:000> !do 0481e5c0
Size: 130(0x82) bytes
String: Font 'Verdana' does not support style 'Regular'.
MT Field Offset Type VT Attr Value Name
6deb2d34 4000096 4 System.Int32 1 instance 57 m_arrayLength
6deb2d34 4000097 8 System.Int32 1 instance 48 m_stringLength
6deb17c8 4000098 c System.Char 1 instance 46 m_firstChar
6deb0ae8 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 🙂