So here I am stationed with a huge customer, with a huge legacy .NET 1.1 application base. Oops, did I just call .NET 1.1 "legacy"....??? When one regularly travels at the speed of light, everything else appears to be in perpetual standstill. The rate of progression with Microsoft software is so incredibly swift that those of us who (attempt to) keep up with their pace of development and release sooner or later will forget that the rest of the world have real business objectives to meet rather than blindly upgrade for the sake of upgrade.
But I digress. I do not truly mean whine and bitch. I already do that enough on a daily basis for a variety of other reasons. The main issue I raise here is, with the Internet already moving past .NET Framework 2.0 and into the shiniest of .NET Framework 3.5 SP1 and the luxurious and juicy goods promised in the upcoming 4.0, the amount of information pertaining to .NET 1.1 seems to be evaporating as folks aren't bothered to secure the lid anymore.
And then, ah, the usual software voodoo happens again.
In an attempt to troubleshoot a particular .NET module that has been giving the customer problems since Day One (that is, back in 2004) I attempted to step-run it on my workstation. As with many other .NET applications around here, this one is built on top of a framework asset that my company regularly utilises to speed development by providing all the plumbing functionality. But I hit an odd never-seen-before error:
An unhandled exception of type 'System.EntryPointNotFoundException' occurred in 4imprbcy
Additional information: Unable to find an entry point named GetPropertyHandle in DLL wminet_utils.dll.
In further digging, the framework itself also logged more details in the Event viewer log.
Event Type: Error
Event Source: Framework Instrumentaion
Event Category: None
Event ID: 0
Date: 3/31/2009
Time: 10:26:48 AM
User: N/A
Computer: MYWORKSTATION
Description:
Failed to fire the WMI event 'LoggingLogDistributedEvent'. Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for "ConvertClass_3" threw an exception. ---> System.EntryPointNotFoundException: Unable to find an entry point named GetPropertyHandle in DLL wminet_utils.dll.
at IWOA.GetPropertyHandle_f27(Int32 vFunc, IntPtr pWbemClassObject, String wszPropertyName, Int32& pType, Int32& plHandle)
at ConvertClass_3..cctor()
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at System.Management.Instrumentation.TypeInfo..ctor(EventSource source, SchemaNaming naming, Type converterType)
at System.Management.Instrumentation.InstrumentedAssembly.GetTypeInfo(Type t)
at System.Management.Instrumentation.InstrumentedAssembly.Fire(Type t, Object o)
at System.Management.Instrumentation.InstrumentedAssembly.Fire(Object o)
at System.Management.Instrumentation.BaseEvent.Fire()
at Organisation.Framework.Instrumentation.InstrumentedEvent._FireWMIEvent(BaseEvent event_)
-----------------------------------
The type initializer for "ConvertClass_3" threw an exception.
-----------------------------------
Unable to find an entry point named GetPropertyHandle in DLL wminet_utils.dll..
Attempting to search for more details on what wminet_utils.dll is about has been difficult. All I see are archive sites that provide a copy of the file just in case yours get corrupted. Looking at the error message it would appear mine is. This appears to be a unmanaged helper DLL that comes as part of the .NET Framework, located at c:\Windows\Microsoft.NET\Framework\v1.1.4322
I copied over the file located in a Windows 2003 server, which showed a different date and version, but the error still persisted. I tried to match it closer by copying wminet_utils.dll from my colleague's workstation to no avail. For the matter, my colleague's workstation is able to run it without throwing such an exceptional error. Patching to .NET Framework 1.1 SP1 did not help either. Wait a minute, I couldn't even tell from the Add/Remove control panel whether SP1 was already installed previously.
In the end, I decided to uninstall .NET Framework 1.1 this morning and reinstall afresh. "Voom" the sound of the problem being sucked away by the vacuum cleaner as I clear the old debris. The new installation of .NET Framework 1.1 got it running again. Now was it really corrupted? I subsequently applied .NET Framework 1.1 SP1 again and smacked into the same error again. Hmmm, what is it about SP1 that may cause System.Management.Instrumentation.InstrumentedAssembly or TypeInfo to have a misunderstanding with wminet_utils.dll?
Unfortunately, I do not know and I do not have the time as of now to look into this further. I have problems to fix for my customer.