Microsoft KB Archive/308940

From BetaArchive Wiki

Article ID: 308940

Article Last Modified on 12/5/2007



APPLIES TO

  • Microsoft COM+ 1.0
  • Microsoft COM+ 1.5
  • Microsoft Visual Studio Installer 1.0
  • Microsoft Visual Studio Installer 1.1



This article was previously published under Q308940

SUMMARY

This article describes how to troubleshoot error 1928 "Error registering COM+ application." You may receive this error message when you run an .msi file (which is created when you export a COM+ application) on a client computer or another server computer.

MORE INFORMATION

The cause of this error message is usually divided into two distinct areas:

  • Dependency issues
  • Permissions issues

Dependency issues

The steps to troubleshoot dependency problems differ depending on how you exported the application. You can export a COM+ application in two different ways:

  • Application proxy
  • Server application

Exporting as an application proxy

If you exported the COM+ application as an application proxy, follow these steps to troubleshoot error 1928.

Note To create an application proxy in Microsoft Windows Server 2003 or in Microsoft Windows XP that will install on a Microsoft Windows 2000-based computer, you must click to select the Save application in COM+ 1.0 format check box.

  1. To rule out a dependency issue, simply export the type library (.tlb or typelib) files instead of the dynamic-link libraries (DLLs).
    • If your components are built with Microsoft Visual Basic, a separate typelib is not automatically created for you. For more information about how to create a separate typelib for your DLL, click the following article number to view the article in the Microsoft Knowledge Base:

      153569 How to get a Typelib (.tlb) file for a Visual Basic OLE server

    • If all of your client computers are running Microsoft Windows 2000, verify that you have at least Windows 2000 Service Pack 2 (SP2) installed on the COM+ server.
    • If some of your client computers are running Microsoft Windows NT 4.0, Microsoft Windows 98, or Microsoft Windows 95, verify that you also have at least Windows 2000 Post-Service Pack 2 COM+ Hotfix Rollup 9 installed on the COM+ server.

      Note To check which hotfixes are installed on the server, view the subkeys under the following key in your registry:

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\HotFix

    When you export the typelibs for your COM+ application, you not only eliminate potential dependency problems, you also minimize the number of files that are installed on the client computer. Because the object is created on the server, the client computer only needs the interface definitions (which is all that a typelib is) and not the full implementation of the DLL.

    To install a typelib into a COM+ application, follow these steps:

    1. On the Start menu, point to Programs, point to Administrative Tools, and then click Component Services to open the Component Services Microsoft Management Console (MMC) and create your new COM+ application.
    2. In Component Services, click to expand the Component Services, Computers, My Computer, and COM+ Applications nodes.
    3. Click to expand your new COM+ application.
    4. Right-click the Components folder, point to New, and then click Component.
    5. In the COM Component Install Wizard, click Next.
    6. On the second page of the wizard, click Install new component(s).
    7. When the wizard prompts you to select your component, select both the .dll file and the .tlb file. Notice that you cannot see the .tlb file in the Component Services MMC; you can only see the DLL.
    8. After you install your component, export your COM+ application as an application proxy.
  2. When you export the typelibs for your COM+ application, you not only eliminate potential dependency problems, you also minimize the number of files that are installed on the client computer. Because the object is created on the server, the client computer only needs the interface definitions (which is all that a typelib is) and not the full implementation of the DLL.Run the .msi file on your client computer. If error 1928 occurred because of a dependency issue, the .msi file should run smoothly on the client computer. Search the file system of the client computer, and notice that only the .tlb file for your component has been installed.
  3. If you still receive error 1928 when you run the .msi file on the client computer, you most likely have a permissions issue on the client computer.

Exporting as a server application

Note To create an application proxy in Microsoft Windows Server 2003 or in Microsoft Windows XP that will install on a Microsoft Windows 2000-based computer, you must click to select the Save application in COM+ 1.0 format check box.

When you export your COM+ application as a server application, you cannot export only the typelib because the server requires the full implementation of the DLL.

If DLLs in your COM+ application contain dependencies that are not present on the new target Microsoft Windows XP Server or Microsoft Windows 2000 Server, you must ensure that these DLLs are registered properly on the target server before you run the .msi file on the target server. If the dependencies are not Component Object Model (COM) DLLs, ensure that they are installed in the windir\WINNT\System32 folder of the target server before you run the .msi file.

If you continue to receive error 1928 after you try these troubleshooting methods, follow these steps on the target computer (the computer from which you run the .msi file) to obtain more useful error information:

  1. Open the Component Services MMC.
  2. Click to expand the Component Services, Computers, and My Computer nodes.
  3. Click and then right-click COM+ Applications, point to New, and then click Application.
  4. In the COM Application Install Wizard, click Next.
  5. On the second page of the wizard, click Install pre-built application(s).
  6. When the wizard prompts you to choose either a default directory or a specific directory, choose Default directory, and then complete the steps in the wizard.
  7. The wizard generates two error message dialog boxes. In the second error message dialog box, click Details to obtain more detailed error information. This error information may provide better insight about the cause of the problem.

Permissions issues

The steps to troubleshoot a permissions issue do not necessarily depend on how you exported the COM+ application. When you troubleshoot a permissions issue, the primary goal is to make sure that the user who is currently logged on to the client computer has the necessary permissions to run the .msi file.

For example, the user must have read/write permissions to the HKEY_CLASSES_ROOT registry subtree. The Regmon and Filemon utilities (which are available from SysInternals) may provide assistance.

Note Installing Crystal Reports 8.0 is known to alter the permissions on certain registry keys. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

266621 Error "Library not registered" with Crystal Reports 8.0



Additional query words: 80110425

Keywords: kbhowto KB308940