Um tempo limite ocorre quando você importa arquivos de personalização grandes para Microsoft Dynamics CRM 2011

Este artigo fornece uma resolução para o problema de que ocorre um tempo limite quando você tenta importar arquivos de personalização grandes para Microsoft Dynamics CRM 2011.

Importante

Este artigo contém informações sobre como modificar o Registro. Faça backup do Registro antes de modificá-lo. Você deve saber como restaurar o Registro caso ocorra algum problema. Para obter mais informações sobre como fazer backup, restaurar e modificar o registro, consulte Informações de registro do Windows para usuários avançados.

Aplica-se a: Microsoft Dynamics CRM 2011
Número de KB original: 918609

Sintomas

Quando você importa arquivos de personalização grandes para Microsoft Dynamics CRM 2011, ocorre um tempo limite. Além disso, você recebe uma das seguintes mensagens de erro.

Mensagem de erro 1

Importar erro de tempo limite.

Mensagem de erro 2

Comprimento máximo da solicitação excedido.

Mensagem de erro 3

O arquivo não pôde ser carregado ou Importar falhou

Mensagem de erro 4

Este não é um arquivo de personalização válido. Use um arquivo .XML que foi gerado exportando personalizações.

Se o valor DevErrors estiver definido como Ativado no arquivo Web.config , você receberá a seguinte mensagem de erro:

relatório de erro da plataforma Microsoft CRM:

Descrição do erro: o tempo limite expirou

Detalhes do erro: detalhes sobre esse erro não foram fornecidos pela plataforma.

Número de erro: 0x80040E31

Além disso, ao atualizar um banco de dados Microsoft CRM grande para Microsoft Dynamics CRM 2011, você poderá receber a seguinte mensagem de erro:

09:54:25| Erro| Instalar exceção. System.Exception: falha no Action Microsoft.Crm.Setup.Server.InstallDatabaseAction. --->
System.Data.SqlClient.SqlException: tempo limite expirado O período de tempo limite decorreu antes da conclusão da operação ou o servidor não está respondendo. em System.Data.SqlClient.SqlCommand.ExecuteNonQuery() em
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql(InstallDatabase database, String sql, Int32 timeout) em Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute() em
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install(Int32 languageCode, String file, boolean upgrade) em
Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(parâmetros IDictionary) em
Microsoft.Crm.Setup.Common.Action.ExecuteAction(Ação, parâmetros IDictionary, desfazer booliano) --- Fim do rastreamento de pilha de exceção interna --- em Microsoft.Crm.Setup.Common.Action.ExecuteAction(Ação, parâmetros IDictionary, desfazer booliano) em
Microsoft.Crm.Setup.Common.Installer.Install(IDictionary stateSaver) em
Microsoft.Crm.Setup.Server.DatabaseInstaller.Install(IDictionary stateSaver) em
Microsoft.Crm.Setup.Common.ComposedInstaller.InternalInstall(IDictionary stateSaver) em
Microsoft.Crm.Setup.Common.ComposedInstaller.Install(IDictionary stateSaver) em
Microsoft.Crm.Setup.Server.ServerSetup.Upgrade(dados IDictionary) em Microsoft.Crm.Setup.Server.ServerSetup.Run()

Motivo

Esse problema ocorre porque uma das seguintes condições é verdadeira:

  • O tempo usado para importar os arquivos de personalização ou para atualizar o Microsoft Business Solutions – CRM excede o valor padrão OLEDBTimeout em Microsoft Dynamics CRM para o computador que está executando o Microsoft SQL Server.

  • O tempo usado para importar os arquivos de personalização ou para atualizar Microsoft Dynamics CRM excede o ExtendedTimeout valor usado para operações de longa execução.

    Observação

    A ExtendedTimeout entrada do registro no servidor Microsoft Dynamics CRM não deve ser definida como um valor maior que 2.147.483.647. Esse é o valor máximo que a entrada do ExtendedTimout registro pode usar.
    Importar arquivos de personalização pode ser uma operação de longa execução.

  • O tamanho do arquivo Customization.xml é maior que 7,5 megabytes (MB).

    Observação

    • O arquivo Customization.xml é criado quando você exporta entidades personalizadas.
    • Por padrão, o Microsoft ASP.NET limita o tamanho da solicitação HTTP a 8 MB.

Resolução

Para resolve esse problema, use um ou mais dos métodos a seguir.

Método 1 – Adicionar as subchaves de registro OLEDBTimeout e ExtendedTimeout para aumentar os valores de tempo limite

Aviso

Poderão ocorrer sérios problemas se você modificar o Registro incorretamente com o Editor do Registro ou outro método. Esses problemas podem exigir a reinstalação do sistema operacional. A Microsoft não pode garantir que esses problemas possam ser resolvidos. Modifique o Registro a seu próprio risco.

  1. Selecione Iniciar e Executar, digite regedit e selecione OK.

  2. Localize a seguinte subchave do Registro:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM

  3. Clique com o botão direito do mouse em MSCRM, aponte para Novo e selecione Valor DWORD para criar um novo valor DWORD.

  4. Renomeie o valor DWORD para o valor OLEDBTimeout.

    Observação

    Esse valor é sensível a maiúsculas de minúsculas.

  5. Clique com o botão direito do mouse no valor DWORD e selecione Modificar.

  6. Na caixa de diálogo Editar Valor DWORD , digite 86400 na caixa de dados Valor , selecione Decimal na opção Base e selecione OK.

    Observação

    De acordo com o requisito do computador que está executando o SQL Server e o número de arquivos de personalização, o valor pode ser maior que 86400. O valor de 86400 é equivalente a 24 horas. Isso só deve ser feito temporariamente ou como uma etapa de solução de problemas. O valor recomendado disso é entre 30 e 300. Deixar essa configuração muito alta pode resultar em problemas de desempenho.

  7. Clique com o botão direito do mouse em MSCRM, aponte para Novo e selecione Valor DWORD para criar um novo valor DWORD.

  8. Renomeie o valor DWORD para o valor ExtendedTimeout.

  9. Clique com o botão direito do mouse no valor DWORD e selecione Modificar.

  10. Na caixa de diálogo Editar Valor DWORD , digite 1000000 na caixa de dados Valor e selecione OK.

    Observação

    • Na caixa de dados Valor , você pode digitar um valor maior que 1.000.000. No entanto, não digite um valor maior que 2.147.483.647. Este é o 0x7FFFFFFF hexadecimal.
    • IMPORTANTE: se essa chave já existir, observe o valor atual. Depois de concluir a importação ou a atualização para Microsoft Dynamics CRM, defina o valor dessa chave de volta para o valor original ou exclua a chave se ela não existisse anteriormente. O valor OLEDBTimeout padrão é de 30 segundos.

Método 2 – Modificar os parâmetros em dois arquivos de Web.config diferentes

  1. Selecione Iniciar, selecione Todos os Programas, Selecione Ferramentas Administrativas e selecione Gerenciador de Serviços de Informações da Internet (IIS).

  2. Expanda o nome do servidor e expanda Sites da Web.

  3. Clique com o botão direito do mouse no site Microsoft CRM e selecione Abrir.

  4. Clique com o botão direito do mouse no arquivo Web.config , selecione Abrir Com e selecione Bloco de Notas.

  5. No Bloco de Notas, localize a linha a seguir.

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

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

  7. Salve e feche o arquivo Web.config .

  8. No diretório no qual você abriu o arquivo Web.config , abra a pasta MSCRMServices.

  9. Clique com o botão direito do mouse no arquivo Web.config , selecione Abrir Com e selecione Bloco de Notas.

  10. No Bloco de Notas, localize a linha a seguir.

    <httpRuntime maxRequestLength="8192"/>

  11. Alterar maxRequestLength="20000".

  12. Salve e feche o arquivo Web.config .

    Importante

    Depois de concluir a ação que requer as alterações acima no arquivo web.config , esses parâmetros devem ser redefinidos para seus valores padrão.

Mais informações

O valor OLEDBTimeout

A unidade do OLEDBTimeout valor é segundos. Por padrão, o OLEDBTimeout valor é de 30 segundos. O OLEDBTimeout valor controla o valor de tempo limite do SQL que é usado para uma única consulta SQL. O valor aumentado OLEDBTimeout é útil quando o SQL Server é sobrecarregado. Além disso, a consulta leva mais tempo para ser processada.

O valor ExtendedTimeout

A unidade do ExtendedTimeout valor é milissegundos. Por padrão, o ExtendedTimeout valor é 1000000 milissegundos. O ExtendedTimeout valor controla o ASP.NET valor de tempo limite usado para solicitações de importação. O valor de tempo limite deve ser maior do que o tempo para concluir todo o processo de importação. O valor aumentado ExtendedTimeout é útil quando o processo de importação leva muito tempo.

Observação

Quando o desempenho do SQL Server é lento ou quando há muitos arquivos de personalização a serem importados, o processo de importação leva muito tempo.