Si verifica un timeout quando si importano file di personalizzazione di grandi dimensioni in Microsoft Dynamics CRM 2011

Questo articolo fornisce una soluzione per il problema che si verifica un timeout quando si tenta di importare file di personalizzazione di grandi dimensioni in Microsoft Dynamics CRM 2011.

Importante

In questo articolo sono contenute informazioni relative alla modifica del Registro di sistema. Assicurarsi di eseguire il backup del Registro di sistema prima di modificarlo. e di sapere come ripristinarlo in caso di problemi. Per altre informazioni su come eseguire il backup, ripristinare e modificare il Registro di sistema, vedere Informazioni sul Registro di sistema di Windows per gli utenti esperti.

Si applica a: Microsoft Dynamics CRM 2011
Numero KB originale: 918609

Sintomi

Quando si importano file di personalizzazione di grandi dimensioni in Microsoft Dynamics CRM 2011, si verifica un timeout. Inoltre, si riceve uno dei seguenti messaggi di errore.

Messaggio di errore 1

Errore di timeout dell'importazione.

Messaggio di errore 2

La lunghezza massima della richiesta è stata superata.

Messaggio di errore 3

Impossibile caricare il file o importazione non riuscita

Messaggio di errore 4

Non si tratta di un file di personalizzazione valido. Usare un file .XML generato dall'esportazione delle personalizzazioni.

Se il valore DevErrors è impostato su On nel file Web.config , viene visualizzato il messaggio di errore seguente:

Microsoft CRM report degli errori della piattaforma:

Descrizione errore: timeout scaduto

Dettagli errore: i dettagli su questo errore non sono stati forniti dalla piattaforma.

Numero errore: 0x80040E31

Inoltre, quando si aggiorna un database di Microsoft CRM di grandi dimensioni a Microsoft Dynamics CRM 2011, è possibile che venga visualizzato il messaggio di errore seguente:

09:54:25| Errore| Eccezione di installazione. System.Exception: azione Microsoft.Crm.Setup.Server.InstallDatabaseAction non riuscita. --->
System.Data.SqlClient.SqlException: timeout scaduto È trascorso il periodo di timeout prima del completamento dell'operazione oppure il server non risponde. in System.Data.SqlClient.SqlCommand.ExecuteNonQuery() all'indirizzo
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql(InstallDatabase database, String sql, Int32 timeout) in Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute() all'indirizzo
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install(Int32 languageCode, String file, Boolean upgrade) all'indirizzo
Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(parametri IDictionary) in
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, IDictionary parameters, Boolean undo) at
Microsoft.Crm.Setup.Common.Installer.Install(IDictionary stateSaver) all'indirizzo
Microsoft.Crm.Setup.Server.DatabaseInstaller.Install(IDictionary stateSaver) all'indirizzo
Microsoft.Crm.Setup.Common.ComposedInstaller.InternalInstall(IDictionary stateSaver) all'indirizzo
Microsoft.Crm.Setup.Common.ComposedInstaller.Install(IDictionary stateSaver) all'indirizzo
Microsoft.Crm.Setup.Server.ServerSetup.Upgrade(IDictionary data) in Microsoft.Crm.Setup.Server.ServerSetup.Run()

Causa

Questo problema si verifica perché si verifica una delle condizioni seguenti:

  • Il tempo usato per importare i file di personalizzazione o per aggiornare Microsoft Business Solutions - CRM supera il valore predefinito OLEDBTimeout in Microsoft Dynamics CRM per il computer che esegue Microsoft SQL Server.

  • Il tempo usato per importare i file di personalizzazione o per aggiornare Microsoft Dynamics CRM supera il ExtendedTimeout valore utilizzato per le operazioni a esecuzione prolungata.

    Nota

    La ExtendedTimeout voce del Registro di sistema nel server Microsoft Dynamics CRM non deve essere impostata su un valore maggiore di 2.147.483.647. Questo è il valore massimo che la voce del ExtendedTimout Registro di sistema può usare.
    L'importazione di file di personalizzazione può essere un'operazione a esecuzione prolungata.

  • Le dimensioni del file Customization.xml sono maggiori di 7,5 megabyte (MB).

    Nota

    • Il file Customization.xml viene creato quando si esportano entità personalizzate.
    • Per impostazione predefinita, Microsoft ASP.NET limita le dimensioni della richiesta HTTP a 8 MB.

Risoluzione

Per risolvere il problema, usare uno o più dei metodi seguenti.

Metodo 1: aggiungere le sottochiavi del Registro di sistema OLEDBTimeout e ExtendedTimeout per aumentare i valori di timeout

Avviso

L'errata modifica del Registro di sistema tramite l'editor o un altro metodo può causare seri problemi. Questi problemi potrebbero richiedere la reinstallazione del sistema operativo. Microsoft non è in grado di garantire la soluzione di tali problemi. La modifica del Registro di sistema è a rischio e pericolo dell'utente.

  1. Selezionare Start e quindi Esegui, digitare regedit e premere OK.

  2. Individuare la seguente sottochiave del Registro di sistema:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM

  3. Fare clic con il pulsante destro del mouse su MSCRM, scegliere Nuovo e quindi selezionare Valore DWORD per creare un nuovo valore DWORD.

  4. Rinominare il valore DWORD con il valore OLEDBTimeout.

    Nota

    Questo valore fa distinzione tra maiuscole e minuscole.

  5. Fare clic con il pulsante destro del mouse sul valore DWORD e quindi scegliere Modifica.

  6. Nella finestra di dialogo Modifica valore DWORD digitare 86400 nella casella Dati valore , selezionare Decimale nell'opzione Base e quindi selezionare OK.

    Nota

    In base al requisito del computer che esegue SQL Server e al numero di file di personalizzazione, il valore può essere maggiore di 86400. Il valore di 86400 equivale a 24 ore. Questa operazione deve essere eseguita solo temporaneamente o come passaggio di risoluzione dei problemi. Il valore consigliato è compreso tra 30 e 300. Se si lascia questa impostazione troppo elevata, possono verificarsi problemi di prestazioni.

  7. Fare clic con il pulsante destro del mouse su MSCRM, scegliere Nuovo e quindi selezionare Valore DWORD per creare un nuovo valore DWORD.

  8. Rinominare il valore DWORD con il valore ExtendedTimeout.

  9. Fare clic con il pulsante destro del mouse sul valore DWORD e quindi scegliere Modifica.

  10. Nella finestra di dialogo Modifica valore DWORD digitare 1000000 nella casella Dati valore e quindi selezionare OK.

    Nota

    • Nella casella Dati valore è possibile digitare un valore maggiore di 1.000.000. Non digitare tuttavia un valore maggiore di 2.147.483.647. Si tratta di 0x7FFFFFFF esadecimale.
    • IMPORTANTE: se questa chiave esiste già, notare il valore corrente. Dopo aver completato l'importazione o l'aggiornamento per Microsoft Dynamics CRM, impostare nuovamente il valore di questa chiave sul valore originale o eliminare la chiave se non esisteva in precedenza. Il valore OLEDBTimeout predefinito è 30 secondi.

Metodo 2 - Modificare i parametri in due file di Web.config diversi

  1. Selezionare Start, Tutti i programmi, Strumenti di amministrazione e infine Gestione Internet Information Services (IIS).

  2. Espandere il nome del server e quindi siti Web.

  3. Fare clic con il pulsante destro del mouse sul sito Web Microsoft CRM e quindi scegliere Apri.

  4. Fare clic con il pulsante destro del mouse sul file Web.config , scegliere Apri con e quindi selezionare Blocco note.

  5. Nel Blocco note individuare la riga seguente.

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

  6. Modificare executionTimeout="3600" e change maxRequestLength="20000".

  7. Salvare e chiudere il file Web.config .

  8. Nella directory in cui è stato aperto il file Web.config aprire la cartella MSCRMServices.

  9. Fare clic con il pulsante destro del mouse sul file Web.config , scegliere Apri con e quindi selezionare Blocco note.

  10. Nel Blocco note individuare la riga seguente.

    <httpRuntime maxRequestLength="8192"/>

  11. Modificare maxRequestLength="20000".

  12. Salvare e chiudere il file Web.config .

    Importante

    Dopo aver completato l'azione che richiede le modifiche precedenti al file web.config , questi parametri devono essere reimpostati sui valori predefiniti.

Ulteriori informazioni

Valore OLEDBTimeout

L'unità del OLEDBTimeout valore è secondi. Per impostazione predefinita, il OLEDBTimeout valore è 30 secondi. Il OLEDBTimeout valore controlla il valore di timeout SQL usato per una singola query SQL. Il valore aumentato OLEDBTimeout è utile quando si esegue l'overload di SQL Server. Inoltre, l'elaborazione della query richiede più tempo.

Valore ExtendedTimeout

L'unità del ExtendedTimeout valore è millisecondi. Per impostazione predefinita, il ExtendedTimeout valore è 1000000 millisecondi. Il ExtendedTimeout valore controlla il valore di timeout ASP.NET utilizzato per le richieste di importazione. Il valore di timeout deve essere maggiore del tempo necessario per completare l'intero processo di importazione. Il valore aumentato ExtendedTimeout è utile quando il processo di importazione richiede molto tempo.

Nota

Quando le prestazioni di SQL Server sono lente o quando sono presenti molti file di personalizzazione da importare, il processo di importazione richiede molto tempo.