SYMPTOMS
Consider the following scenario:
- You create a Microsoft COM+ serviced component.
- The serviced component contains a custom attribute.
- You compile the serviced component in the Microsoft .NET Framework 1.1.
- You create a COM+ application that contains the serviced component.
- You export a COM+ application proxy .msi file from the COM+ application.
- You try to install the COM+ application proxy .msi file on a Windows Server 2003-based computer that has the .NET Framework 2.0 installed.
In this scenario, you receive the following error message:
Error registering COM+ Application. Contact your support personnel for more information.
Additionally, a
CustomAttributeFormatException exception occurs, and the following Warning event is logged in the Application log:Event Type: Warning
Event Source: COM+ SOAP Services
Event Category: None
Event ID: 0
Date:
DateTime:
TimeUser: N/A
Computer:
ComputerNameDescription: System.Reflection.CustomAttributeFormatException: Binary format of the specified custom attribute was invalid.
at
System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments(IntPtr pCa, Int32 cCa, CustomAttributeCtorParameter[]& CustomAttributeCtorParameters, CustomAttributeNamedParameter[]& CustomAttributeTypedArgument, IntPtr assembly)
at
System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments(ConstArray attributeBlob, CustomAttributeCtorParameter[]& customAttributeCtorParameters, CustomAttributeNamedParameter[]& customAttributeNamedParameters, Module customAttributeModule)
at System.Reflection.CustomAttributeData..ctor(Module scope, CustomAttributeRecord caRecord)
at System.Reflection.CustomAttributeData.GetCustomAttributes(Module module, Int32 tkTarget)
at System.Reflection.CustomAttributeData.GetCustomAttributes(MemberInfo target)
at System.Runtime.InteropServices.Marshal.GenerateProgIdForType(Type type)
at
System.Runtime.InteropServices.RegistrationServices.RegisterManagedType(Type type, String strAsmName, String strAsmVersion, String strAsmCodeBase, String strRuntimeVersion)
at
System.Runtime.InteropServices.RegistrationServices.RegisterAssembly(Assembly assembly, AssemblyRegistrationFlags flags)
at System.EnterpriseServices.Internal.Publish.RegisterAssembly(String AssemblyPath)