Wednesday, March 02, 2011

Internet Explorer reports error: “The specified module could not be found”

Browsing (your customized?) ASP.NET application with IE7/8/9 you may encounter following error:


The error message says: “The specified module could not be found”. Most frequently you will encounter this error while displaying the pages containing Accordion AJAX control.

Surprisingly, other browsers like Firefox or Chrome do not cause this error and still display the Web application pages and all the controls correctly.

There are numerous methods to debug this error, we selected the local instance of Visual Studio:


The error occurs exactly in getOpacity() function of a local JScript:


getElementOpacity : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var hasOpacity = false;var opacity;if (element.filters) {
var filters = element.filters;if (filters.length !== 0) {
var alphaFilter = filters['DXImageTransform.Microsoft.Alpha'];if (alphaFilter) {
opacity = alphaFilter.opacity / 100.0;hasOpacity = true;}

Quick watch on the filters says exactly the error we saw above:


The Interface IHTMLFilterCollection is implemented in oleaut32.dll:





There’s a Microsoft KB article describing a similar problem:

According this article just try to re-register the oleat32.dll and actxprxy.dll:




On some computers it helped.

On others we were obliged to re-run dxdiag: to detect any DirectX errors on the workstations. Some of them were cured just after installing of most recent DirectX graphics drivers

The rest of boxes displayed the same error: “DCIMAN32.DLL is missing”.

This is a symptom, some of latest software updates or new installations corrupted the system and removed the DCIMAN32.DLL from the %SYSTEM% folder. Short description was presented here:

But one more tasks of this library is to provide Internet Explorer with additional graphics related functions, that rely on the interfaces of this library and underlying modules. Fortunately, other browsers do not rely on this operating system dependent functionalities, so they can display the pages correctly.

What we’ve done was the fresh copy of DCIMAN32.DLL form an healthy reference system directly into %SYSTEM% folder of the victim machine – you do not event need to register this library with regsvr32 or reboot the computer.

It just worked after this – try to follow the steps and enjoy!

No comments: