2011년 Microsoft Dynamics CRM 대용량 사용자 지정 파일을 가져올 때 시간 초과가 발생합니다.

이 문서에서는 큰 사용자 지정 파일을 Microsoft Dynamics CRM 2011로 가져오려고 할 때 시간 초과가 발생하는 문제에 대한 해결 방법을 제공합니다.

중요

이 문서는 레지스트리 수정 방법에 대한 정보를 담고 있습니다. 수정하기 전에 해당 레지스트리를 백업하세요. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리를 백업, 복원 및 수정하는 방법에 대한 자세한 내용은 고급 사용자에 대한 Windows 레지스트리 정보를 참조하세요.

적용 대상: Microsoft Dynamics CRM 2011
원래 KB 번호: 918609

증상

큰 사용자 지정 파일을 Microsoft Dynamics CRM 2011로 가져오면 시간 초과가 발생합니다. 또한 다음 오류 메시지 중 하나가 수신됩니다.

오류 메시지 1

가져오기 시간 제한 오류입니다.

오류 메시지 2

최대 요청 길이를 초과했습니다.

오류 메시지 3

파일을 업로드할 수 없거나 가져오기에 실패했습니다.

오류 메시지 4

유효한 사용자 지정 파일이 아닙니다. 사용자 지정을 내보내서 생성된 .XML 파일을 사용하세요.

Web.config 파일에서 DevErrors 값이 기로 설정된 경우 다음 오류 메시지가 표시됩니다.

Microsoft CRM 플랫폼 오류 보고서:

오류 설명: 시간 제한이 만료됨

오류 세부 정보: 이 오류에 대한 세부 정보는 플랫폼에서 제공하지 않았습니다.

오류 번호: 0x80040E31

또한 큰 Microsoft CRM 데이터베이스를 Microsoft Dynamics CRM 2011로 업그레이드하면 다음과 같은 오류 메시지가 표시될 수 있습니다.

09:54:25| 오류| 예외를 설치합니다. System.Exception: Microsoft.Crm.Setup.Server.InstallDatabaseAction 작업이 실패했습니다. --->
System.Data.SqlClient.SqlException: 시간 제한이 만료되었습니다. 작업이 완료되기 전에 제한 시간이 초과되었거나 서버가 응답하지 않습니다. 에서 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute()의 Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql(InstallDatabase database, String sql, Int32 시간 제한)
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install(Int32 languageCode, 문자열 파일, 부울 업그레이드)
Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(IDictionary 매개 변수)
Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action, IDictionary 매개 변수, 부울 실행 취소) --- Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action, IDictionary 매개 변수, 부울 실행 취소)에서 내부 예외 스택 추적 --- 끝
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.Run()의 Microsoft.Crm.Setup.Server.ServerSetup.Upgrade(IDictionary 데이터)

원인

이 문제는 다음 조건 중 하나가 true이기 때문에 발생합니다.

  • 사용자 지정 파일을 가져오거나 Microsoft Business Solutions를 업그레이드하는 데 사용되는 시간 - CRM은 Microsoft SQL Server 실행하는 컴퓨터의 Microsoft Dynamics CRM 기본 OLEDBTimeout 값을 초과합니다.

  • 사용자 지정 파일을 가져오거나 Microsoft Dynamics CRM 업그레이드하는 데 사용되는 시간이 장기 실행 작업에 사용되는 값을 초과 ExtendedTimeout 합니다.

    참고

    Microsoft Dynamics CRM 서버의 레지스트리 항목은 ExtendedTimeout 2,147,483,647보다 큰 값으로 설정해서는 안 됩니다. 레지스트리 항목에서 사용할 수 있는 ExtendedTimout 최대값입니다.
    사용자 지정 파일을 가져오는 작업은 장기 실행 작업일 수 있습니다.

  • Customization.xml 파일의 크기가 7.5MB보다 큽니다.

    참고

    • 사용자 지정 엔터티를 내보낼 때 Customization.xml 파일이 만들어집니다.
    • 기본적으로 Microsoft ASP.NET HTTP 요청 크기를 8MB로 제한합니다.

해결 방법

이 문제를 resolve 하려면 다음 방법 중 하나 이상을 사용합니다.

메서드 1 - 시간 제한 값을 늘리기 위해 OLEDBTimeout 및 ExtendedTimeout 레지스트리 하위 키를 추가합니다.

경고

레지스트리 편집기 또는 다른 방법을 사용하여 레지스트리를 잘못 수정하는 경우 심각한 문제가 발생할 수 있습니다. 이러한 문제가 발생하면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft에서는 이 문제의 해결을 보장하지 않습니다. 레지스트리를 수정하는 데 따르는 위험은 사용자가 부담해야 합니다.

  1. 시작을 선택하고 실행을 선택한 후 regedit를 입력하고 확인을 선택합니다.

  2. 다음 레지스트리 하위 키를 찾습니다.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM

  3. MSCRM을 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 DWORD 값을 선택하여 새 DWORD 값을 만듭니다.

  4. DWORD 값의 이름을 OLEDBTimeout 값으로 바꿉니다.

    참고

    이 값은 대/소문자를 구분합니다.

  5. DWORD 값을 마우스 오른쪽 단추로 클릭한 다음 수정을 선택합니다.

  6. DWORD 값 편집 대화 상자의 값 데이터 상자에 86400을 입력하고 기본 옵션에서 10진수를 선택한 다음 확인을 선택합니다.

    참고

    SQL Server를 실행하는 컴퓨터의 요구 사항 및 사용자 지정 파일 수에 따라 값이 86400보다 클 수 있습니다. 값 86400은 24시간과 같습니다. 이 작업은 일시적으로 또는 문제 해결 단계로만 수행해야 합니다. 권장되는 값은 30에서 300 사이입니다. 이 설정을 너무 높게 두면 성능 문제가 발생할 수 있습니다.

  7. MSCRM을 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 DWORD 값을 선택하여 새 DWORD 값을 만듭니다.

  8. DWORD 값의 이름을 ExtendedTimeout 값으로 바꿉니다.

  9. DWORD 값을 마우스 오른쪽 단추로 클릭한 다음 수정을 선택합니다.

  10. DWORD 값 편집 대화 상자의 값 데이터 상자에 1000000을 입력한 다음 확인을 선택합니다.

    참고

    • 값 데이터 상자에 1,000,000보다 큰 값을 입력할 수 있습니다. 그러나 2,147,483,647보다 큰 값을 입력하지 마세요. 이것은 16 진수 0x7FFFFFFF.
    • 중요: 이 키가 이미 있는 경우 현재 값을 확인합니다. Microsoft Dynamics CRM 대한 가져오기 또는 업그레이드를 완료한 후 이 키의 값을 원래 값으로 다시 설정하거나 이전에 존재하지 않는 경우 키를 삭제합니다. 기본 OLEDBTimeout 값은 30초입니다.

메서드 2 - 두 개의 서로 다른 Web.config 파일에서 매개 변수 수정

  1. 시작을 선택하고 모든 프로그램을 선택하고 관리 도구를 선택한 다음 IIS(인터넷 정보 서비스) 관리자를 선택합니다.

  2. 서버 이름을 확장한 다음 웹 사이트를 확장합니다.

  3. Microsoft CRM 웹 사이트를 마우스 오른쪽 단추로 클릭한 다음 열기를 선택합니다.

  4. Web.config파일을 마우스 오른쪽 단추 로 클릭하고 열기 선택한 다음 메모장을 선택합니다.

  5. 메모장에서 다음 줄을 찾습니다.

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

  6. 및 을 변경 executionTimeout="3600" 합니다 change maxRequestLength="20000".

  7. Web.config 파일을 저장 한 다음 닫습니다.

  8. Web.config 파일을 연 디렉터리에서 MSCRMServices 폴더를 엽니다.

  9. Web.config파일을 마우스 오른쪽 단추 로 클릭하고 열기 선택한 다음 메모장을 선택합니다.

  10. 메모장에서 다음 줄을 찾습니다.

    <httpRuntime maxRequestLength="8192"/>

  11. 을 변경합니다 maxRequestLength="20000".

  12. Web.config 파일을 저장 한 다음 닫습니다.

    중요

    위의web.config 파일 변경이 필요한 작업을 완료한 후에는 이러한 매개 변수를 기본값으로 다시 설정해야 합니다.

추가 정보

OLEDBTimeout 값

값의 단위는 OLEDBTimeout 초입니다. 기본적으로 값은 OLEDBTimeout 30초입니다. 값은 OLEDBTimeout 단일 SQL 쿼리에 사용되는 SQL 제한 시간 값을 제어합니다. 증가된 OLEDBTimeout 값은 SQL 서버가 오버로드될 때 유용합니다. 또한 쿼리를 처리하는 데 시간이 더 오래 걸립니다.

ExtendedTimeout 값

값의 ExtendedTimeout 단위는 밀리초입니다. 기본적으로 값은 ExtendedTimeout 10000000밀리초입니다. 값은 ExtendedTimeout 가져오기 요청에 사용되는 ASP.NET 시간 제한 값을 제어합니다. 시간 제한 값은 전체 가져오기 프로세스를 완료하는 시간보다 커야 합니다. 증가된 ExtendedTimeout 값은 가져오기 프로세스에 시간이 오래 걸리는 경우에 유용합니다.

참고

SQL 서버의 성능이 느리거나 가져올 사용자 지정 파일이 많으면 가져오기 프로세스에 시간이 오래 걸립니다.