Ein Timeout tritt auf, wenn Sie große Anpassungsdateien in Microsoft Dynamics CRM 2011 importieren.

Dieser Artikel bietet eine Lösung für das Problem, dass ein Timeout auftritt, wenn Sie versuchen, große Anpassungsdateien in Microsoft Dynamics CRM 2011 zu importieren.

Wichtig

Dieser Artikel enthält Informationen zum Bearbeiten der Registrierung. Sie sollten eine Sicherungskopie der Registrierung erstellen, bevor Sie die Registrierung bearbeiten. Sie müssen wissen, wie die Registrierung wiederhergestellt werden kann, wenn ein Problem auftritt. Weitere Informationen zum Sichern, Wiederherstellen und Ändern der Registrierung finden Sie unter Windows-Registrierungsinformationen für fortgeschrittene Benutzer.

Gilt für: Microsoft Dynamics CRM 2011
Ursprüngliche KB-Nummer: 918609

Problembeschreibung

Wenn Sie große Anpassungsdateien in Microsoft Dynamics CRM 2011 importieren, tritt ein Timeout auf. Darüber hinaus erhalten Sie eine der folgenden Fehlermeldungen.

Fehlermeldung 1

Fehler beim Importtimeout.

Fehlermeldung 2

Die maximale Anforderungslänge wurde überschritten.

Fehlermeldung 3

Die Datei konnte nicht hochgeladen werden, oder der Import ist fehlgeschlagen.

Fehlermeldung 4

Dies ist keine gültige Anpassungsdatei. Verwenden Sie eine .XML-Datei, die durch den Export von Anpassungen generiert wurde.

Wenn der DevErrors-Wert in der Web.config-Datei auf Ein festgelegt ist, erhalten Sie die folgende Fehlermeldung:

Microsoft CRM Plattformfehlerbericht:

Fehlerbeschreibung: Timeout abgelaufen

Fehlerdetails: Details zu diesem Fehler wurden von der Plattform nicht bereitgestellt.

Fehlernummer: 0x80040E31

Wenn Sie eine große Microsoft CRM Datenbank auf Microsoft Dynamics CRM 2011 aktualisieren, wird möglicherweise die folgende Fehlermeldung angezeigt:

09:54:25| Fehler| Installations-Ausnahme. System.Exception: Fehler bei der Aktion Microsoft.Crm.Setup.Server.InstallDatabaseAction. --->
System.Data.SqlClient.SqlException: Timeout abgelaufen. The timeout period elapsed prior to completion of the operation or the server is not responding. at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql(InstallDatabase database, String sql, Int32 timeout) at Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute() at
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install(Int32 languageCode, String file, Boolean upgrade) at
Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(IDictionary-Parameter) bei
Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action, IDictionary parameters, Boolean undo) --- End of inner exception stack trace --- at Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action, IDictionary parameters, Boolean undo) at
Microsoft.Crm.Setup.Common.Installer.Install(IDictionary stateSaver) at
Microsoft.Crm.Setup.Server.DatabaseInstaller.Install(IDictionary stateSaver) at
Microsoft.Crm.Setup.Common.ComposedInstaller.InternalInstall(IDictionary stateSaver) at
Microsoft.Crm.Setup.Common.ComposedInstaller.Install(IDictionary stateSaver) at
Microsoft.Crm.Setup.Server.ServerSetup.Upgrade(IDictionary data) at Microsoft.Crm.Setup.Server.ServerSetup.Run()

Ursache

Dieses Problem tritt auf, weil eine der folgenden Bedingungen zutrifft:

  • Die Zeit, die zum Importieren der Anpassungsdateien oder zum Aktualisieren von Microsoft Business Solutions – CRM verwendet wird, überschreitet den Standardwert OLEDBTimeout in Microsoft Dynamics CRM für den Computer, auf dem Microsoft SQL Server ausgeführt wird.

  • Die Zeit, die zum Importieren der Anpassungsdateien oder zum Aktualisieren von Microsoft Dynamics CRM verwendet wird, überschreitet den Wert, der ExtendedTimeout für Zeitintensive Vorgänge verwendet wird.

    Hinweis

    Der ExtendedTimeout Registrierungseintrag auf dem Microsoft Dynamics CRM Server sollte nicht auf einen Wert festgelegt werden, der größer als 2.147.483.647 ist. Dies ist der Maximalwert, den der ExtendedTimout Registrierungseintrag verwenden kann.
    Das Importieren von Anpassungsdateien kann ein zeitintensiver Vorgang sein.

  • Die Größe der Customization.xml Datei ist größer als 7,5 MB.

    Hinweis

    • Die Customization.xml-Datei wird erstellt, wenn Sie benutzerdefinierte Entitäten exportieren.
    • Standardmäßig beschränkt Microsoft ASP.NET die HTTP-Anforderungsgröße auf 8 MB.

Lösung

Verwenden Sie eine oder mehrere der folgenden Methoden, um dieses Problem zu beheben.

Methode 1: Fügen Sie die Registrierungsunterschlüssel OLEDBTimeout und ExtendedTimeout hinzu, um die Timeoutwerte zu erhöhen.

Warnung

Schwerwiegende Probleme können auftreten, wenn die Registrierung mit dem Registrierungs-Editor oder einer anderen Methode unsachgemäß bearbeitet wird. Diese Probleme können eine Neuinstallation des Betriebssystems erforderlich machen. Microsoft gibt keinerlei Garantien dafür ab, dass diese Probleme behoben werden können. Das Ändern der Registrierung erfolgt auf eigenes Risiko.

  1. Wählen Sie Start und dann Ausführen aus, geben Sie regedit ein, und wählen Sie anschließend OK aus.

  2. Suchen Sie den folgenden Registrierungsunterschlüssel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM

  3. Klicken Sie mit der rechten Maustaste auf MSCRM, zeigen Sie auf Neu, und wählen Sie dann DWORD-Wert aus, um einen neuen DWORD-Wert zu erstellen.

  4. Benennen Sie den DWORD-Wert in den Wert OLEDBTimeout um.

    Hinweis

    Bei diesem Wert wird die Groß-/Kleinschreibung beachtet.

  5. Klicken Sie mit der rechten Maustaste auf den DWORD-Wert, und wählen Sie dann Ändern aus.

  6. Geben Sie im Dialogfeld DWORD-Wert bearbeiten im Feld Wertdaten den Wert 86400 ein, wählen Sie in der Option Basis die Option Dezimal aus, und wählen Sie dann OK aus.

    Hinweis

    Je nach Anforderung des Computers, auf dem SQL Server ausgeführt wird, und der Anzahl der Anpassungsdateien kann der Wert größer als 86400 sein. Der Wert 86400 entspricht 24 Stunden. Dies sollte nur vorübergehend oder als Problembehandlungsschritt erfolgen. Der empfohlene Wert liegt zwischen 30 und 300. Wenn diese Einstellung zu hoch bleibt, kann dies zu Leistungsproblemen führen.

  7. Klicken Sie mit der rechten Maustaste auf MSCRM, zeigen Sie auf Neu, und wählen Sie dann DWORD-Wert aus, um einen neuen DWORD-Wert zu erstellen.

  8. Benennen Sie den DWORD-Wert in den Wert ExtendedTimeout um.

  9. Klicken Sie mit der rechten Maustaste auf den DWORD-Wert, und wählen Sie dann Ändern aus.

  10. Geben Sie im Dialogfeld DWORD-Wert bearbeiten im Feld Wert den Wert 1000000 ein, und wählen Sie dann OK aus.

    Hinweis

    • Im Feld Wertdaten können Sie einen Wert eingeben, der größer als 1.000.000 ist. Geben Sie jedoch keinen Wert ein, der größer als 2.147.483.647 ist. Dies ist hexadezimal 0x7FFFFFFF.
    • WICHTIG: Wenn dieser Schlüssel bereits vorhanden ist, beachten Sie den aktuellen Wert. Nachdem Sie den Import oder das Upgrade für Microsoft Dynamics CRM abgeschlossen haben, legen Sie den Wert dieses Schlüssels wieder auf den ursprünglichen Wert fest, oder löschen Sie den Schlüssel, falls er zuvor noch nicht vorhanden war. Der Standardmäßige OLEDBTimeout-Wert beträgt 30 Sekunden.

Methode 2: Ändern der Parameter in zwei verschiedenen Web.config-Dateien

  1. Wählen Sie Start, Alle Programme, Verwaltung und dann Internetinformationsdienste-Manager aus.

  2. Erweitern Sie den Servernamen und dann Websites.

  3. Klicken Sie mit der rechten Maustaste auf die Microsoft CRM Website, und wählen Sie dann Öffnen aus.

  4. Klicken Sie mit der rechten Maustaste auf die Web.config Datei, wählen Sie Öffnen mit und dann Editor aus.

  5. Suchen Sie im Editor nach der folgenden Zeile.

    <httpRuntime executionTimeout="300" maxRequestLength="8192"/>

  6. Ändern Sie executionTimeout="3600" und change maxRequestLength="20000".

  7. Speichern und schließen Sie dann die Web.config Datei.

  8. Öffnen Sie in dem Verzeichnis, in dem Sie die Web.config Datei geöffnet haben, den Ordner MSCRMServices.

  9. Klicken Sie mit der rechten Maustaste auf die Web.config Datei, wählen Sie Öffnen mit und dann Editor aus.

  10. Suchen Sie im Editor nach der folgenden Zeile.

    <httpRuntime maxRequestLength="8192"/>

  11. Ändern Sie maxRequestLength="20000".

  12. Speichern und schließen Sie dann die Web.config Datei.

    Wichtig

    Nach Abschluss der Aktion, die die oben genannten Änderungen an der web.config-Datei erfordert, sollten diese Parameter auf ihre Standardwerte zurückgesetzt werden.

Weitere Informationen

Der OLEDBTimeout-Wert

Die Einheit des Werts OLEDBTimeout ist Sekunden. Standardmäßig beträgt der OLEDBTimeout Wert 30 Sekunden. Der OLEDBTimeout Wert steuert den SQL-Timeoutwert, der für eine einzelne SQL-Abfrage verwendet wird. Der erhöhte OLEDBTimeout Wert ist nützlich, wenn der SQL Server überlastet ist. Darüber hinaus dauert die Verarbeitung der Abfrage länger.

Der ExtendedTimeout-Wert

Die Einheit des Werts ExtendedTimeout beträgt Millisekunden. Standardmäßig beträgt der ExtendedTimeout Wert 1000000 Millisekunden. Der ExtendedTimeout Wert steuert den ASP.NET Timeoutwert, der für Importanforderungen verwendet wird. Der Timeoutwert muss größer als die Zeit für den Abschluss des gesamten Importvorgangs sein. Der erhöhte ExtendedTimeout Wert ist nützlich, wenn der Importvorgang sehr lange dauert.

Hinweis

Wenn die Leistung von SQL Server langsam ist oder viele Anpassungsdateien importiert werden müssen, dauert der Importvorgang sehr lange.