Microsoft KB Archive/292039

= FIX: Unable to Replicate COM+ Package Due to Path Not Found 0x80070003 =

Article ID: 292039

Article Last Modified on 8/15/2002

-

APPLIES TO


 * Microsoft Application Center 2000 Standard Edition

-



This article was previously published under Q292039



SYMPTOMS
Event ID: 5142

Source: Application Center - Replication Session

Description: Unable to export COM+ application

Event Type: Error

Error occurred while attempting to export COM+ Application %Path% (ID:%Key%). This occurred during session %ReplicationID% and job %ReplicationJobID%. Status is 0x80070003 The system cannot find the path specified.



CAUSE
The DLL path (in the general component properties in Component Services) of the effected COM+ component is missing. The DLL path is the path in the file system to the dynamic link library (DLL) file.



RESOLUTION
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

This fix is included with the fixes that are described in the following Microsoft Knowledge Base article:

302845 INFO: Availability of Windows 2000 Post-Service Pack 2 COM+ Hotfix Rollup Package 14

WORKAROUND
You can use any of the following methods to work around this problem:  Change the instancing of the effected components to allow public instanciation.

For example, in Microsoft Visual Basic 6.0, change the instancing of the effected class modules to MultiUse or GlobalMultiUse, recompile, and then reregister with Component Services. Manually install the components. Export the COM+ package from Component Services (this creates .msi and .cab files), copy the exported files to the target server, and then execute the .msi file.  Run the following script to remove the component entries in the COM+ catalog that cause this problem. (Removing these components should not affect the operation of your applications because these catalog entries serve no purpose.) '******************************************************************** '* '* File:          acCleanPublicNotCreatable.VBS '* Created:       February 2001 '* '* Main Function:  Deletes VB PublicNotCreatable components from COM+ catalog '*                 This corrects a problem that may cause AC2000 COM+ deployment failures '* '* Copyright (C) 2001 Microsoft Corporation '* '******************************************************************** Option Explicit

' Open a session with the catalog ' Instantiate a COMAdminCatalog object Dim Catalog ' As COMAdminCatalog Set Catalog = CreateObject(&quot;COMAdmin.COMAdminCatalog&quot;)

' First get the &quot;Applications&quot; collection from the catalog, ' representing it with the generic COMAdminCatalogCollection Dim Applications ' As COMAdminCatalogCollection Set Applications = Catalog.GetCollection(&quot;Applications&quot;) Applications.Populate

Dim app ' As COMAdminCatalogObject Dim Components ' As COMAdminCatalogCollection Dim comp ' As COMAdminCatalogObject Dim fUpdate ' As Boolean Dim i ' As Integer

' Walk Applications Collection

For Each app In Applications 'wscript.echo app.Name

' Get Components collection for current application Set Components = Applications.GetCollection(&quot;Components&quot;, app.Key) Components.Populate

fUpdate = False i = 0 ' Walk Compnents collection checking for empty Dll Path (PublicNotCreatable) For Each comp In Components ' Wscript.echo Components.Item(i).Name If comp.Value(&quot;DLL&quot;) = &quot;&quot; Then fUpdate = True wscript.echo &quot;Removing &quot; & comp.Name & &quot; &quot; & comp.Key & &quot; from Application &quot; & app.Name Components.Remove i       Else i = i + 1 End If   Next If fUpdate Then Components.SaveChanges Next 



STATUS
Microsoft has confirmed that this is a bug in Component Services. This problem was first corrected in Windows 2000 Service Pack 3.



Steps to Reproduce Behavior
Create a COM+ component with a missing DLL path.
 * 1) Create a new ActiveX DLL project in Visual Basic 6.0.
 * 2) Create two class modules. Set instancing of one to PublicNotCreatable and the other to MultiUse.

NOTE: At least one class module requires instancing of MuliUse or GlobalMultiUse in order to compile.
 * 1) Compile into a dynamic link library (DLL).
 * 2) In Component Services, create an empty application.
 * 3) Add the compiled DLL to the new empty application in Component Services.

NOTE: The DLL path will be missing from the component, which was set to instancing of PublicNotCreatable.
 * 1) Attempt to deploy the COM+ application by using the Application Center 2000 New Deployment Wizard.

Additional query words: kbIISCom

Keywords: kbbug kbfix kbwin2000sp3fix KB292039

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.