Un délai d’attente se produit lorsque vous importez des fichiers de personnalisation volumineux dans Microsoft Dynamics CRM 2011
Cet article fournit une résolution du problème lié au délai d’attente lorsque vous essayez d’importer des fichiers de personnalisation volumineux dans Microsoft Dynamics CRM 2011.
Importante
Cet article contient des informations sur la modification du Registre. Avant de modifier le Registre, pensez à le sauvegarder et assurez-vous que vous savez le restaurer en cas de problème. Pour plus d’informations sur la sauvegarde, la restauration et la modification du Registre, consultez Informations du Registre Windows pour les utilisateurs avancés.
S’applique à : Microsoft Dynamics CRM 2011
Numéro de la base de connaissances d’origine : 918609
Symptômes
Lorsque vous importez des fichiers de personnalisation volumineux dans Microsoft Dynamics CRM 2011, un délai d’attente se produit. En outre, vous recevez l’un des messages d’erreur suivants.
Message d’erreur 1
Erreur de délai d’expiration de l’importation.
Message d’erreur 2
Longueur maximale de la demande dépassée.
Message d’erreur 3
Impossible de charger le fichier ou l’importation a échoué
Message d’erreur 4
Il ne s’agit pas d’un fichier de personnalisation valide. Utilisez un fichier .XML généré par l’exportation des personnalisations.
Si la valeur DevErrors est définie sur Activé dans le fichier Web.config , le message d’erreur suivant s’affiche :
Rapport d’erreurs de plateforme Microsoft CRM :
Description de l’erreur : Expiration du délai d’expiration
Détails de l’erreur : les détails de cette erreur n’ont pas été fournis par la plateforme.
Numéro d’erreur : 0x80040E31
En outre, lorsque vous mettez à niveau une base de données Microsoft CRM volumineuse vers Microsoft Dynamics CRM 2011, vous pouvez recevoir le message d’erreur suivant :
09 :54 :25| Erreur | Installez l’exception. System.Exception : l’action Microsoft.Crm.Setup.Server.InstallDatabaseAction a échoué. --->
System.Data.SqlClient.SqlException : délai d’attente expiré. Le délai d’expiration s’est produit avant la fin de l’opération ou le serveur ne répond pas. sur System.Data.SqlClient.SqlCommand.ExecuteNonQuery() à l’adresse
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql(InstallDatabase database, String sql, Int32 timeout) à l’adresse Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute() à l’adresse
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install(Int32 languageCode, String file, Boolean upgrade) à l’adresse
Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(paramètres IDictionary) à
Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action, Paramètres IDictionary, Annulation booléenne) --- Fin de la trace de pile d’exceptions interne --- sur Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action, Paramètres IDictionary, Annulation booléenne) à l’adresse
Microsoft.Crm.Setup.Common.Installer.Install(IDictionary stateSaver) à l’adresse
Microsoft.Crm.Setup.Server.DatabaseInstaller.Install(IDictionary stateSaver) à l’adresse
Microsoft.Crm.Setup.Common.ComposedInstaller.InternalInstall(IDictionary stateSaver) à l’adresse
Microsoft.Crm.Setup.Common.ComposedInstaller.Install(IDictionary stateSaver) à l’adresse
Microsoft.Crm.Setup.Server.ServerSetup.Upgrade(IDictionary data) sur Microsoft.Crm.Setup.ServerSetup.Run()
Cause
Ce problème se produit car l’une des conditions suivantes est vraie :
Le temps utilisé pour importer les fichiers de personnalisation ou pour mettre à niveau 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 importer les fichiers de personnalisation ou mettre à niveau Microsoft Dynamics CRM dépasse la
ExtendedTimeout
valeur utilisée pour les opérations de longue durée.Remarque
L’entrée
ExtendedTimeout
de Registre sur le serveur Microsoft Dynamics CRM ne doit pas être définie sur une valeur supérieure à 2 147 483 647. Il s’agit de la valeur maximale que l’entrée deExtendedTimout
Registre peut utiliser.
L’importation de fichiers de personnalisation peut être une opération de longue durée.La taille du fichier Customization.xml est supérieure à 7,5 mégaoctets (Mo).
Remarque
- Le fichier Customization.xml est créé lorsque vous exportez des entités personnalisées.
- Par défaut, Microsoft ASP.NET limite la taille de la requête HTTP à 8 Mo.
Résolution
Pour résoudre ce problème, utilisez une ou plusieurs des méthodes suivantes.
Méthode 1 : ajoutez les sous-clés de Registre OLEDBTimeout et ExtendedTimeout pour augmenter les valeurs de délai d’attente
Avertissement
De graves problèmes peuvent se produire si vous vous trompez en modifiant le Registre à l’aide de l’Éditeur du Registre ou toute autre méthode. Ces problèmes peuvent nécessiter la réinstallation du système d’exploitation. Microsoft ne peut pas garantir que ces problèmes puissent être résolus. Vous assumez l’ensemble des risques liés à la modification du Registre.
Sélectionnez Démarrer, Exécuter, tapez regedit, puis sélectionnez OK.
Trouvez la sous-clé de Registre suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
Cliquez avec le bouton droit sur MSCRM, pointez sur Nouveau, puis sélectionnez Valeur DWORD pour créer une valeur DWORD.
Renommez la valeur DWORD en la valeur OLEDBTimeout.
Remarque
Cette valeur respecte la casse.
Cliquez avec le bouton droit sur la valeur DWORD, puis sélectionnez Modifier.
Dans la boîte de dialogue Modifier la valeur DWORD , tapez 86400 dans la zone Données de la valeur , sélectionnez Décimal dans l’option Base , puis sélectionnez OK.
Remarque
Selon les exigences de l’ordinateur exécutant SQL Server et le nombre de fichiers de personnalisation, la valeur peut être supérieure à 86400. La valeur de 86400 équivaut à 24 heures. Cette opération ne doit être effectuée que temporairement ou en tant qu’étape de résolution des problèmes. La valeur recommandée est comprise entre 30 et 300. Le fait de laisser ce paramètre trop élevé peut entraîner des problèmes de performances.
Cliquez avec le bouton droit sur MSCRM, pointez sur Nouveau, puis sélectionnez Valeur DWORD pour créer une valeur DWORD.
Renommez la valeur DWORD en valeur ExtendedTimeout.
Cliquez avec le bouton droit sur la valeur DWORD, puis sélectionnez Modifier.
Dans la boîte de dialogue Modifier la valeur DWORD , tapez 1000000 dans la zone Données de la valeur, puis sélectionnez OK.
Remarque
- 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’une 0x7FFFFFFF hexadécimale.
- IMPORTANT : si cette clé existe déjà, notez la valeur actuelle. Une fois que vous avez terminé l’importation ou la mise à niveau pour Microsoft Dynamics CRM, définissez de nouveau la valeur de cette clé sur la valeur d’origine ou supprimez la clé si elle n’existait pas auparavant. La valeur OLEDBTimeout par défaut est de 30 secondes.
Méthode 2 - Modifier les paramètres dans deux fichiers Web.config différents
Sélectionnez Démarrer, Tous les programmes, Outils d’administration, puis Gestionnaire des services Internet (IIS).
Développez le nom du serveur, puis développez Sites web.
Cliquez avec le bouton droit sur le site web Microsoft CRM, puis sélectionnez Ouvrir.
Cliquez avec le bouton droit sur le fichier Web.config , sélectionnez Ouvrir avec, puis sélectionnez Bloc-notes.
Dans le Bloc-notes, recherchez la ligne suivante.
<httpRuntime executionTimeout="300" maxRequestLength="8192"/>
Modifiez
executionTimeout="3600"
etchange maxRequestLength="20000"
.Enregistrez, puis fermez le fichier Web.config .
Dans le répertoire dans lequel vous avez ouvert le fichier Web.config , ouvrez le dossier MSCRMServices.
Cliquez avec le bouton droit sur le fichier Web.config , sélectionnez Ouvrir avec, puis sélectionnez Bloc-notes.
Dans le Bloc-notes, recherchez la ligne suivante.
<httpRuntime maxRequestLength="8192"/>
Modifiez
maxRequestLength="20000"
.Enregistrez, puis fermez le fichier Web.config .
Importante
Une fois l’action qui nécessite les modifications ci-dessus apportées au fichier web.config , ces paramètres doivent être réinitialisés à leurs valeurs par défaut.
Informations supplémentaires
Valeur OLEDBTimeout
L’unité de la OLEDBTimeout
valeur est secondes. Par défaut, la OLEDBTimeout
valeur est 30 secondes. La OLEDBTimeout
valeur contrôle la valeur du délai d’attente SQL utilisée pour une requête SQL unique. La valeur augmentée OLEDBTimeout
est utile lorsque le serveur SQL est surchargé. En outre, le traitement de la requête prend plus de temps.
Valeur ExtendedTimeout
L’unité de la ExtendedTimeout
valeur est de millisecondes. Par défaut, la ExtendedTimeout
valeur est 1000000 millisecondes. La ExtendedTimeout
valeur contrôle la valeur ASP.NET délai d’attente utilisée pour les demandes d’importation. La valeur du délai d’attente doit être supérieure au temps nécessaire pour terminer l’ensemble du processus d’importation. La valeur accrue ExtendedTimeout
est utile lorsque le processus d’importation prend beaucoup de temps.
Remarque
Lorsque les performances du serveur SQL sont lentes ou qu’il existe de nombreux fichiers de personnalisation à importer, le processus d’importation prend beaucoup de temps.