Microsoft KB Archive/170832

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Article ID: 170832

Article Last Modified on 5/6/2001



APPLIES TO

  • Microsoft Transaction Services 1.0
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition



This article was previously published under Q170832

SYMPTOMS

Certain custom proxy-stub DLLs may corrupt the registry keys for Oleaut32.dll while being unregistered. After this corruption has taken place, Microsoft Transaction Server does not run correctly. Instead, it reports the following error:

An error occurred accessing components in the System package on this computer. Error code was 80004002. Make sure that:
+ Microsoft Transaction Server is installed correctly.
+ If you have set a specific identity for the System package, the user and password are correct.

Reinstalling Microsoft Transaction Server does not correct this problem.

CAUSE

A bug in the MIDL compiler produces proxy-stub DLLs that corrupt the registry, destroying information about Oleaut32.dll. This DLL is required for Microsoft Transaction Server Explorer to function correctly.

To check whether you are being affected by this bug, run Regedit and check the following key:

   HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-
   000000000046}\InprocServer32.
                

You should see that this key has a value of "Oleaut32.dll." If this key is blank instead, your registry has been corrupted, and you will need to follow the directions given in the "Resolution" section of this article.

RESOLUTION

  1. Open a new file in Notepad and add the following lines:

          REGEDIT4
    
          [HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-000000000046}]
          @="PSOAInterface"
    
          [HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-
          000000000046}\InprocServer]
          @="ole2disp.dll"
    
          [HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-
          000000000046}\InprocServer32]
          "ThreadingModel"="Both"
          @="oleaut32.dll"
                            

    NOTE: Make sure that that the complete key name, starting with [HKEY_... and ending with InprocServer32], is on one line.

  2. Save the new file as Oleaut.reg.
  3. In Windows NT Explorer, double-click the Oleaut.reg file. Doing this makes the necessary corrections to the registry. Microsoft Transaction Server will now function correctly.


STATUS

Microsoft has confirmed this to be a problem in Transaction Server 1.0 and Visual C++, 32-bit Editions, version 5.0.

MORE INFORMATION

This corruption is often produced when you drag and drop a DLL with a custom proxy-stub from Windows NT Explorer into Microsoft Transaction Server Explorer.

REFERENCES

For more information, visit the following Web sites:


Additional query words: mts

Keywords: kberrmsg kbbug kbsysadmin kbpending KB170832