You are currently offline, waiting for your internet to reconnect

You receive an error message when you use Business Intelligence Development Studio to build a SQL Server 2005 Integration Services package

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

SYMPTOMS
When you use Business Intelligence Development Studio to build a Microsoft SQL Server 2005 Integration Services (SSIS) package, you may experience the following behavior:
  • When you try to create a new connection manager for an Integration Services package, the SQL Native Client ODBC provider is not listed in the provider list.
  • When you try to create a new connection manager for an Integration Services package, you receive the following error message:
    The connection type "OLEDB" specified for connection manager "{83ED4D5C-85E5-4E2E-A4B5-7CD48DD1B683}" is not recognized as a valid connection manager type. This error is returned when an attempt is made to create a connection manager for an unknown connection type. Check the spelling in the connection type name.
  • When you open an Integration Services package that was already created, you receive the following error message:
    Error loading 'Package.dtsx' : The package failed to load due to error 0xC0010014 "One or more error occurred. There should be more specific errors preceding this one that explains the details of the errors. This message is used as a return value from functions that encounter errors." This occurs when CPackage::LoadFromXML fails.
CAUSE
This behavior occurs because the installation of a third-party application or of a third-party driver may incorrectly set up the permissions of the registry subkeys under the
HKEY_LOCAL_MACHINE\Software\Classes\CLSID
subtree. If the Component Category Manager encounters a registry key for which it does not have read permissions, it reports an access error and stops enumerating components. Therefore, the Component Category Manager cannot enumerate the SSIS components that have a CLSID that has incorrect permissions in the subtree.

Applications that are known to possibly cause this behavior are Lexmark printer drivers (Lexdrvx.dll) and Macromedia Flash. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
300491 FIX: Applications that use Component Categories Manager with non-Administrator credentials fail on Application Center
RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for SQL Server 2005. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
913089 How to obtain the latest service pack for SQL Server 2005
Note In SQL Server 2005 Service Pack 1, SQL Server will correctly report the error as follows:

Could not enumerate the registered connections.

Even with the improved error message, you may still have to use the method in the "Workaround" section to help identify the problem registry keys and resolve the problem.
WORKAROUND
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows


To work around this behavior, follow these steps:
  1. Log on as a user who is not a member of the Administrators group, or use the runas command.
  2. Use the following C# code sample to identify the registry subkeys that have incorrect permissions.
    using System;using Microsoft.Win32; namespace CheckClsidPerm{    class Program    {        static void Main(string[] args)        {            RegistryKey clsid = Registry.LocalMachine.OpenSubKey(@"Software\Classes\CLSID");            string[] clsids = clsid.GetSubKeyNames();            Console.WriteLine("found {0} keys", clsids.Length);             foreach (string s in clsids)            {                try                {                    using(RegistryKey clsidKey = clsid.OpenSubKey(s))                    {                        using(RegistryKey ic = clsidKey.OpenSubKey("Implemented Categories"))                        {                        }                    }                }                catch( Exception e )                {                    Console.WriteLine("error while reading key {0}: {1}", s, e.Message);                }            }                    }    }}
  3. Compile and run this code. Notice that the security permissions on the registry keys that are reported by the program are incorrect. These security permissions prevent SSIS from enumerating SSIS components. You have to grant the Read permission to the Users group for these registry subkeys.
Notes
  • You must restart the computer after you modify the registry for the changes to take effect.
  • This workaround uses the code sample to test registry key access from the same permission context of non-Administrator users. This permission context is the common context for applications. Therefore, make sure that you execute the compiled version of the code sample as a user and not as a member of the Administrators group.
When you are logged on to a user account that is not a member of the Administrators group, you can use this C# code sample to identify the registry subkeys that have incorrect permissions. To do this, you can use the Runas command to run this C# code sample. For more information about how to use the Runas command, visit the following Microsoft Web site: To use this C# code sample, you must compile it first. To compile this C# code sample, you can use the C# compiler (Csc.exe) or Microsoft Visual Studio .NET.
STATUS
This behavior is by design.

The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.
Properties

Article ID: 913817 - Last Review: 07/14/2006 18:22:47 - Revision: 4.3

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsql2005connect kbexpertiseadvanced kbprb KB913817
Feedback
dy>