beim Upgrade einer CRM 3.0 Umgebung auf CRM 4.0 passiert ein Fehler der das
System so zurücklässt, das es man vollständig wiederherstellen muss.
Der Fehler lautet "In der Datenbank ist bereits ein Objekt mit dem Namen
'AttributeTypes' vorhanden"
In der Schaltfläche dieser Fehlermeldung gibt es die Möglichkeiten
"Wiederholen" und "Abbrechen". "Wiederholen" schmeißt nur den gleichen
Fehler, "Abbrechen" hinterlässt eine teilweise aktualisierte Datenbank und
eine bereits auf CRM 4.0 aktualisierte Webanwendung nebst installierten
Diensten. Insgesamt aber aufgrund des Fehlers unbrauchbar.
Hier ein Auszug aus dem Setup Log, crm40srvsetup.log:
Error| Install exception.System.Exception: Fehler bei der Aktion
Microsoft.Crm.Setup.Server.InstallDatabaseAction. --->
System.Data.SqlClient.SqlException: In der Datenbank ist bereits ein Objekt
mit dem Namen 'AttributeTypes' vorhanden.
bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection)
bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
bei
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj)
bei System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
bei System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
methodName, Boolean async)
bei
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult
result, String methodName, Boolean sendToPipe)
bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
bei
Microsoft.Crm.Setup.Database.DatabaseUtility.ExecuteSql(InstallDatabase
database, String sql, Int32 timeout)
bei Microsoft.Crm.Setup.Database.SqlScriptAction.Execute(DatabaseUtility
dbUtility)
bei
Microsoft.Crm.Setup.Database.DatabaseInstaller.ExecuteReleases(ReleaseCollection releases, Int32 currentProgress)
bei Microsoft.Crm.Setup.Database.DatabaseInstaller.installInternal()
bei Microsoft.Crm.Setup.Database.DatabaseInstaller.Install(Int32
languageCode, String configurationFilePath, Boolean upgradeDatabase)
bei Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(IDictionary
parameters)
bei Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action,
IDictionary parameters, Boolean undo)
Diesem Fehler geht eine Fehlermeldung vorraus, die man durch Klicken auf
"Wiederholen" übergehen kann. Sie lautet:
Ein Aufrufziel hat einen Ausnahmefehler verursacht. --->
System.MissingMethodException: Methode nicht gefunden
Auszug aus dem Logfile:
Error| System.Exception: Fehler bei der Aktion
Microsoft.Crm.Setup.Server.InstallDatabaseAction. --->
System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen
Ausnahmefehler verursacht. ---> System.MissingMethodException: Methode nicht
gefunden: Boolean Microsoft.Crm.RegControl.IsInHosterContext().
bei Microsoft.Crm.Caching.OrganizationCache.Instance()
bei Microsoft.Crm.Metadata.LocalizationHelper.GetLabelsForResource(String
resourceName, Guid objectId, String objectColumnName, String collectionName,
String labelName, IOrganizationContext context)
bei
Microsoft.Crm.Metadata.MigrationAttributeHelper.CreateImportSequenceNumberField(Guid entityId, MetadataHelper metadataHelper, ExecutionContext context)
bei
Microsoft.Crm.DataUpgrade.MigrationFieldsUpgrade.MigrationFieldsUpgradeDriver.UpgradeCustomEntitiesForMigration()
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[]
arguments, SignatureStruct& sig, MethodAttributes methodAttributes,
RuntimeTypeHandle typeOwner)
bei System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[]
arguments, Signature sig, MethodAttributes methodAttributes,
RuntimeTypeHandle typeOwner)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean
skipVisibilityChecks)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
bei System.RuntimeType.InvokeMember(String name, BindingFlags
bindingFlags, Binder binder, Object target, Object[] providedArgs,
ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
bei System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder
binder, Object target, Object[] args, CultureInfo culture)
bei Microsoft.Crm.Setup.Database.DllMethodAction.Execute()
bei
Microsoft.Crm.Setup.Database.DatabaseInstaller.ExecuteReleases(ReleaseCollection releases, Int32 currentProgress)
bei Microsoft.Crm.Setup.Database.DatabaseInstaller.installInternal()
bei Microsoft.Crm.Setup.Database.DatabaseInstaller.Install(Int32
languageCode, String configurationFilePath, Boolean upgradeDatabase)
bei Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(IDictionary
parameters)
bei Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action,
IDictionary parameters, Boolean undo)
Ich habe schon alles in der Datenbank selber probiert: Indizes neu angelegt,
Workflow Logs gelöscht, hängengebliebene Workflows anhand der ProzessID aus
der Datenbank gelöscht - hilft alles nichts. Die Datenbank ist OK, ein DBCC
CHECKDB meldet eine konsistente Datenbank.
Das in der zweiten und fatalen Fehlermeldung bemängelte Objekt
"AttributeTypes" ist ein SYNONYM im SQL 2005, welches ERST durch das Setup
selber angelegt wird und vorher nicht vorhanden ist.
Ich war in einer Testumgebung so frech und habe nach dem die Fehlermeldung
aufpoppte, das SYNONYM testweise manuell gelöscht und auf "Wiederholen"
geklickt. Dann geht der Prozess einen Schritt weiter, bemängelt dann aber ein
Objekt "Entity", wenn man das löscht, fängt der Spaß wieder bei
"AttributeTypes" an. Das konnte das Setup ja anlegen, befindet sich aber in
einer Art Schleife.
Das CRM System hat die obligatorischen C360 Tools installiert, die in der
CRM Datenbank zwei Tabellen anlegt (AlertBase und AlertExtensionsBase),
weitere Besonderheiten außer benutzerdefinierten Entitäten hat es nicht. Ein
Javascript mal und da aber das wars.
Hat jemand von Euch schon was ähnliches erlebt? Gibts einen Weg daraus???
Ich vermute ja schon fast eine fehlerhafte CRM 4.0 Setup CD?! Das SQL 2005
Setup war ähnlich sperrig (Kopieren von bpaclient.dll, reportserver user
account musste angepasst werden.
Bin für jede Hilfe dankbar,
Gruß,
Jörg Krumm