Serviced components require referenced components to be strong-named (821621)



The information in this article 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 Edition
  • Microsoft Visual Studio .NET (2003), Enterprise Developer Edition
  • Microsoft Visual Studio .NET (2003), Academic Edition
  • Microsoft Visual Studio .NET (2002), Professional Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Developer Edition
  • 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 'RefAssmName' 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.

Modification Type:MajorLast Reviewed:3/3/2006
Keywords:kbvs2005applies kbvs2005swept kberrmsg kbCOMServices kbCOMInterop kbcomplusobj kbdocerr KB821621 kbAudDeveloper