Microsoft KB Archive/821621

= Serviced components require referenced components to be strong-named =

Article ID: 821621

Article Last Modified on 5/12/2007

-

APPLIES TO


 * Microsoft Visual Studio 2005 Professional Edition
 * Microsoft Visual Studio 2005 Standard Edition
 * Microsoft Visual Studio .NET 2003 Professional Edition
 * Microsoft Visual Studio .NET 2003 Enterprise Architect
 * Microsoft Visual Studio .NET 2003 Enterprise Developer
 * Microsoft Visual Studio .NET 2003 Academic Edition
 * Microsoft Visual Studio .NET 2002 Professional Edition
 * Microsoft Visual Studio .NET 2002 Enterprise Architect
 * Microsoft Visual Studio .NET 2002 Enterprise Developer
 * Microsoft Visual Studio .NET 2002 Academic Edition

-



SUMMARY
A serviced component is the mechanism that enables COM+ services to be available to the .NET Framework classes. ServicedComponent is a class that derives directly or indirectly from the System.EnterpriseServices.ServicedComponent class. Classes that are configured in this way can be hosted in a COM+ application and can use COM+ services through the EnterpriseServices namespace.

A serviced component may be a COM DLL or a .NET assembly. The components that appear in a serviced component must be strong-named. If you refer to a component that is not strong-named when you build a serviced component, you receive the following error message:

Unable to emit assembly: Referenced assembly ' ' does not have a strong name



MORE INFORMATION
Serviced components permit you to gain access to COM+ services such as the following:
 * Just-in-Time (JIT) Activation
 * Synchronization
 * Object Pooling
 * Transactions
 * Shared Property Management
 * Loosely Coupled events
 * Queued Components
 * Role-based security

A serviced component can also be hosted by a COM+ application and must be accessible to that application. For accessibility, the serviced components must meet the registration and configuration requirements. One of these requirements is that a serviced component must be strong-named. By using only strong-named assemblies, you can use the functionality that strong-naming provides, such as versioning and naming protection. When a strong-named assembly references an assembly that is not strong-named, you cannot use the functionality that strong-naming provides. Your system reverts to DLL conflicts. Therefore, strong-named serviced components can reference only other strong-named assemblies.

