Error message in the Application log when an event callout is invoked for an entity in Microsoft Dynamics CRM: "General config file format error" (911401)



The information in this article applies to:

  • Microsoft CRM 3.0
  • Microsoft CRM Software Development Kit

SYMPTOMS

When an event callout is invoked for an entity in Microsoft Dynamics CRM 3.0, the Application log may display an error message that resembles the following error message:
Error: General config file format error: Microsoft.Crm.Metadata.AttributeMetadataNotFoundException: 'Entity' entity doesn't contain attribute with Name = 'Name'.
at Microsoft.Crm.Metadata.EntityMetadata.GetAttribute(String attributeName, NameMappingType mapping)
at Microsoft.Crm.Metadata.EntityMetadata.GetAttribute(String attributeName)
at Microsoft.Crm.Callout.SubscriptionEntry.AddImageAttribute(String attributeName, Boolean bPreImage)
at Microsoft.Crm.Callout.SubscriptionEntry.LoadImageAttributes(XmlNode xn)
at Microsoft.Crm.Callout.SubscriptionEntry.Load(XmlNode xn)
at Microsoft.Crm.Callout.EventEntry.Load(XmlNode xn)
at Microsoft.Crm.Callout.EntityEntry.Load(XmlNode xn)
at Microsoft.Crm.Callout.CalloutConfig.LoadEntityEntry(XmlNode xn)
at Microsoft.Crm.Callout.CalloutConfig.Load(XmlDocument xd)
at Microsoft.Crm.Callout.CalloutConfig.Load()
Note The Entity placeholder represents an actual entity. The Name placeholder represents an actual attribute name.

Additionally, Microsoft CRM may not process valid subscriptions.

This problem occurs when you have multiple subscriptions for event callouts for an entity.

CAUSE

This problem occurs because the Prevalue attribute or the Postvalue attribute is invalid.

WORKAROUND

To work around this problem, use one of the following methods.

Method 1: Remove the invalid attribute

You can remove the invalid attribute from the subscription by modifying the Callout.config.xml file.

Notes
  • You can use Notepad to modify the Callout.config.xml file.
  • By default, the Callout.config.xml file is located in the following directory:

    C:\Program Files\Microsoft CRM\server\bin\assembly

For example, you can remove the "<postvalue>Name</postvalue>" line if the content of the Callout.config.xml file is as follows.
<callout.config version="2.0">
<callout entity="Entity" event="PreCreate">
<subscription assembly="CalloutSample2.dll"
class="CalloutSample2.CalloutComponent">
</subscription>
</callout>
<callout entity="Entity" event="PostCreate">
<subscription assembly="CalloutSample2.dll"
class="CalloutSample2.CalloutComponent">
</subscription>
</callout>
<callout entity="Entity" event="PostCreate">
<subscription assembly="CalloutSample2.dll"
class="CalloutSample2.CalloutComponent">
<postvalue>Name</postvalue>
</subscription>
</callout>
</callout.config>
Note Entity is a placeholder that represents an actual entity. Name is a placeholder that represents the actual name of the invalid attribute.

Method 2: Replace the invalid attribute

You can replace the invalid attribute with a valid attribute by modifying the Callout.config.xml file.

Notes
  • You can use Notepad to modify the Callout.config.xml file.
  • By default, the Callout.config.xml file is located in the following directory:

    C:\Program Files\Microsoft CRM\server\bin\assembly

STATUS

This behavior is by design.

REFERENCES

For more information about the callout model in Microsoft CRM 3.0, visit the following Microsoft Web site:

Modification Type:MinorLast Reviewed:9/7/2006
Keywords:kberrmsg kbtshoot kbMBScustomization kbMBSMigrate kbprb KB911401 kbAudEndUser kbAudKnowledgeWorker