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 doExtendedTimout
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.
Selecione Iniciar e Executar, digite regedit e selecione OK.
Localize a seguinte subchave do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
Clique com o botão direito do mouse em MSCRM, aponte para Novo e selecione Valor DWORD para criar um novo valor DWORD.
Renomeie o valor DWORD para o valor OLEDBTimeout.
Observação
Esse valor é sensível a maiúsculas de minúsculas.
Clique com o botão direito do mouse no valor DWORD e selecione Modificar.
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.
Clique com o botão direito do mouse em MSCRM, aponte para Novo e selecione Valor DWORD para criar um novo valor DWORD.
Renomeie o valor DWORD para o valor ExtendedTimeout.
Clique com o botão direito do mouse no valor DWORD e selecione Modificar.
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
Selecione Iniciar, selecione Todos os Programas, Selecione Ferramentas Administrativas e selecione Gerenciador de Serviços de Informações da Internet (IIS).
Expanda o nome do servidor e expanda Sites da Web.
Clique com o botão direito do mouse no site Microsoft CRM e selecione Abrir.
Clique com o botão direito do mouse no arquivo Web.config , selecione Abrir Com e selecione Bloco de Notas.
No Bloco de Notas, localize a linha a seguir.
<httpRuntime executionTimeout="300" maxRequestLength="8192"/>
Alterar
executionTimeout="3600"
echange maxRequestLength="20000"
.Salve e feche o arquivo Web.config .
No diretório no qual você abriu o arquivo Web.config , abra a pasta MSCRMServices.
Clique com o botão direito do mouse no arquivo Web.config , selecione Abrir Com e selecione Bloco de Notas.
No Bloco de Notas, localize a linha a seguir.
<httpRuntime maxRequestLength="8192"/>
Alterar
maxRequestLength="20000"
.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.