Un dépassement de délai se produit lorsque vous importez des fichiers de personnalisation volumineux dans Microsoft Dynamics CRM

S’applique à : Microsoft Dynamics CRM 2011Dynamics CRM 4.0

Important Cet article contient des informations sur la façon de modifier le Registre. Veillez à sauvegarder le Registre avant de le modifier. Assurez-vous que vous savez comment restaurer le Registre si un problème survient. Pour plus d’informations sur la façon de sauvegarder, restaurer et modifier le Registre, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
256986 description du Registre Microsoft Windows

Symptômes


Lorsque vous importez des fichiers de personnalisation volumineux dans Microsoft Dynamics CRM 3.0 ou dans Microsoft Dynamics CRM 4.0, un dépassement de délai se produit. En outre, vous recevez un des messages d’erreur suivants.
Message d'erreur 1
Erreur de délai d’attente d’importation.


Message d'erreur 2
Dépassé la longueur maximale de la demande.
Message d'erreur 3
Le fichier n’a pas pu être chargé ou l’importation a échoué
Message d’erreur 4
Il ne s’agit pas d’un fichier de personnalisation valide. Veuillez en utiliser un. Fichier XML qui a été générée par l’exportation des personnalisations.
Si la valeur DevErrors est définie sur « On » dans le fichier Web.config, le message d’erreur suivant s’affiche :
Rapport d’erreurs Microsoft CRM Platform :


Description de l’erreur : Délai d’attente expiré


Détails de l’erreur : Plus d’informations sur cette erreur n’ayant pas été prévus par la plate-forme.


Numéro d’erreur : 0x80040E31
En outre, lorsque vous mettez à niveau une base de données Microsoft CRM volumineuse de Microsoft Business Solutions - CRM 1.2 vers Microsoft Dynamics 3.0 ou de Microsoft Dynamics CRM 3.0 vers Microsoft Dynamics CRM 4.0, le message d’erreur suivant peut s’afficher :
09:54:25 | Erreur | Installez l’exception. System.Exception : Échec de l’Action Microsoft.Crm.Setup.Server.InstallDatabaseAction. ---> System.Data.SqlClient.SqlException : délai expiré. Le délai d’attente écoulée avant l’achèvement de l’opération ou le serveur ne répond pas. à System.Data.SqlClient.SqlCommand.ExecuteNonQuery() à Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql (InstallDatabase de base de données, String sql, Int32 timeout) à Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute() à Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install (Int32 languageCode, du fichier de chaîne, une mise à niveau booléenne) à Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do (IDictionary parameters) à Microsoft.Crm.Setup.Common.Action.ExecuteAction (Action action, IDictionary paramètres, Boolean undo)---fin de la trace de pile d’exception interne---à Microsoft.Crm.Setup.Common.Action.ExecuteAction (Action action, IDictionary paramètres, Boolean undo) à Microsoft.Crm.Setup.Common.Installer.Install (IDictionary stateSaver) à Microsoft.Crm.Setup.Server.DatabaseInstaller.Install (IDictionary stateSaver) à Microsoft.Crm.Setup.Common.ComposedInstaller.InternalInstall (IDictionary stateSaver) à Microsoft.Crm.Setup.Common.ComposedInstaller.Install (IDictionary stateSaver) à Microsoft.Crm.Setup.Server.ServerSetup.Upgrade (IDictionary données) à Microsoft.Crm.Setup.Server.ServerSetup.Run()

Cause


Ce problème se produit car une des conditions suivantes est remplie :
  • Le temps qui est utilisé pour l’importation des fichiers de personnalisation ou de mise à niveau de Microsoft Business Solutions - CRM dépasse la valeur par défaut OLEDBTimeout dans Microsoft Dynamics CRM pour l’ordinateur qui exécute Microsoft SQL Server.
  • Le temps utilisé pour l’importation des fichiers de personnalisation ou de mise à niveau de Microsoft CRM dépasse la valeur ExtendedTimeout utilisée pour les opérations longues.

    Remarque L’entrée de Registre ExtendedTimeout sur le serveur Microsoft Dynamics CRM ne doit pas être définie sur une valeur supérieure à 2 147 483 647. Qui est la valeur maximale que l’entrée de Registre ExtendedTimout peut utiliser.

    Remarque Importation de fichiers de personnalisation possible d’une opération longue.
  • La taille du fichier personnalisation.XML est supérieure à 7,5 mégaoctets (Mo).

    Remarques
    • Le fichier personnalisation.XML est créé lorsque vous exportez des entités personnalisées.
    • Par défaut, Microsoft ASP.NET limite la taille de la demande HTTP à 8 Mo.

Résolution


Pour résoudre ce problème, appliquez une ou plusieurs des méthodes suivantes.

Méthode 1 : Ajouter les OLEDBTimeout et les sous-clés de Registre ExtendedTimeout pour augmenter les valeurs de délai d’attente

Avertissement Des problèmes graves peuvent survenir si vous modifiez le Registre incorrectement à l’aide de l’Éditeur du Registre ou en utilisant une autre méthode. Ces problèmes peuvent nécessiter que vous réinstalliez votre système d'exploitation. Microsoft ne peut pas garantir que ces problèmes puissent être résolus. Modifiez le Registre à vos risques et périls.
  1. Cliquez sur Démarrer, sur exécuter, tapez regedit, puis cliquez sur OK.
  2. Recherchez la sous-clé de Registre suivante :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
  3. Droit sur MSCRM, pointez sur Nouveau, puis cliquez sur Valeur DWORD pour créer une nouvelle valeur DWORD.
  4. Renommez la valeur DWORD avec la valeur suivante :
    OLEDBTimeout

    Remarque : Cette valeur respecte la casse
  5. Avec le bouton droit de la valeur DWORD, puis cliquez sur Modifier.
  6. Dans la boîte de dialogue Modifier la valeur DWORD , tapez 86400 dans la zone données de la valeur , cliquez sur décimale dans l’option de Base et puis cliquez sur OK.


    Remarque En fonction des exigences de l’ordinateur qui exécute le serveur SQL et le nombre de fichiers de personnalisation, la valeur peut être supérieure à 86400. La valeur 86400 est équivalente à 24 heures. Il doit uniquement faire temporairement ou comme étape de dépannage. La valeur recommandée est comprise entre 30 et 300. Laisser ce paramètre trop élevé peut entraîner des problèmes de performances.
  7. Droit sur MSCRM, pointez sur Nouveau, puis cliquez sur Valeur DWORD pour créer une nouvelle valeur DWORD.
  8. Renommez la valeur DWORD avec la valeur suivante :
    ExtendedTimeout
  9. Avec le bouton droit de la valeur DWORD, puis cliquez sur Modifier.
  10. Dans la boîte de dialogue Modifier la valeur DWORD , tapez 1000000 dans la zone données de la valeur , puis cliquez sur OK.

    Remarques
    • Dans la zone données de la valeur , vous pouvez taper une valeur supérieure à 1 000 000. Toutefois, ne tapez pas une valeur supérieure à 2 147 483 647. Il s’agit d’hexadécimal 0x7FFFFFFF.
    • Important: Si cette clé existe déjà, notez la valeur actuelle. Après avoir terminé l’importation ou la mise à niveau de Microsoft Dynamics CRM, définir la valeur de cette clé la valeur d’origine ou supprimer la clé si elle n’existait pas précédemment. La valeur par défaut OLEDBTimeout est de 30 secondes.

Méthode 2 : Modifier les paramètres dans deux fichiers Web.config différents

  1. Cliquez sur Démarrer, sur Tous les programmes, sur Outils d’administration, puis cliquez sur Gestionnaire des Services Internet (IIS).
  2. Développez le nom du serveur, puis développez Sites Web.
  3. Cliquez droit sur le site Web Microsoft CRM v3.0 ou sur le site Web de Microsoft CRM 4.0 et puis cliquez sur Ouvrir.
  4. Cliquez sur le fichier Web.config et cliquez sur Ouvrir avec, puis cliquez sur bloc-notes.
  5. Dans le bloc-notes, recherchez la ligne suivante.
    <httpRuntime executionTimeout="300" maxRequestLength="8192"/>
  6. Modifier executionTimeout = « 3600 » et modifiez maxRequestLength = « 20000 ».
  7. Enregistrez et fermez le fichier Web.config.
  8. Dans le répertoire dans lequel vous avez ouvert le fichier Web.config, ouvrez le dossier MSCRMServices.
  9. Cliquez sur le fichier Web.config et cliquez sur Ouvrir avec, puis cliquez sur bloc-notes.
  10. Dans le bloc-notes, recherchez la ligne suivante.
    <httpRuntime maxRequestLength="8192"/>
  11. Modifier maxRequestLength = « 20000 ».
  12. Enregistrez et fermez le fichier Web.config.
    • Important: après la fin de l’action qui nécessite les modifications ci-dessus dans le fichier web.config, ces paramètres doivent être réinitialisées à leurs valeurs par défaut.

Plus d'informations


La valeur OLEDBTimeout

L’unité de la valeur OLEDBTimeout est secondes. Par défaut, la valeur OLEDBTimeout est de 30 secondes. La valeur OLEDBTimeout contrôle la valeur de délai SQL utilisée pour une seule requête SQL. La valeur OLEDBTimeout augmentée est utile lorsque le serveur SQL est surchargé. En outre, la requête prend plus de temps à traiter.

La valeur ExtendedTimeout

L’unité de la valeur ExtendedTimeout est de millisecondes. Par défaut, la valeur ExtendedTimeout est de 1000000 millisecondes. La valeur ExtendedTimeout contrôle la valeur de délai ASP.NET utilisée pour les demandes d’importation. La valeur de délai d’attente doit être supérieure à la fois pour terminer le processus d’importation. La valeur ExtendedTimeout augmentée est utile lorsque le processus d’importation prend du temps.

Remarque Lorsque les performances du serveur SQL sont lentes ou lorsqu’il y a de nombreux fichiers de personnalisation à importer, le processus d’importation prend beaucoup de temps.