共用方式為


當您將大型自定義檔案匯入 Dynamics CRM 2011 Microsoft時,就會發生逾時

本文提供當您嘗試將大型自定義檔案匯入至 Dynamics CRM 2011 Microsoft時發生逾時問題的解決方案。

重要

本文包含如何修改「登錄檔」的相關資訊。 修改登錄前,請務必先備份。 並了解如何在發生問題時還原登錄。 如需如何備份、還原及修改登錄的詳細資訊,請參閱 進階使用者的 Windows 登錄資訊。

適用於: Microsoft Dynamics CRM 2011
原始 KB 編號: 918609

徵兆

當您將大型自定義檔案匯入Microsoft Dynamics CRM 2011 時,就會發生逾時。 此外,您會收到下列其中一個錯誤訊息。

錯誤訊息 1

匯入逾時錯誤。

錯誤訊息 2

超過要求長度上限。

錯誤訊息 3

無法上傳檔案或匯入失敗

錯誤訊息 4

這不是有效的自定義檔案。 請使用匯出自定義所產生的.XML檔案。

如果 DevErrors 值設定為 Web.config 檔案中的 On,您會收到下列錯誤訊息:

Microsoft CRM 平台錯誤報告:

錯誤描述:逾時已過期

錯誤詳細數據:平臺尚未提供此錯誤的詳細數據。

錯誤號碼:0x80040E31

此外,當您將大型 Microsoft CRM 資料庫升級至 Microsoft Dynamics CRM 2011 時,您可能會收到下列錯誤訊息:

09:54:25|錯誤|安裝例外狀況。System.Exception:動作Microsoft.Crm.Setup.Server.InstallDatabaseAction 失敗。 --->
System.Data.SqlClient.SqlException:逾時過期。 在作業完成前就已超過逾時期間,或是伺服器沒有回應。 at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql(InstallDatabase 資料庫,String sql, Int32 逾時),位於 at Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute()
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install(Int32 languageCode, String file, Boolean upgrade) at
Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(IDictionary 參數)
Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action, IDictionary parameters, Boolean undo) ---在 Microsoft.Crm.Setup.Common.Action.ExecuteAction(Action action, IDictionary parameters, Boolean undo) 處的內部例外狀況堆疊追蹤結束---
Microsoft.Crm.Setup.Common.Installer.Install(IDictionary stateSaver) at
Microsoft.Crm.Setup.Server.DatabaseInstaller.Install(IDictionary stateSaver)
Microsoft.Crm.Setup.Common.ComposedInstaller.InternalInstall(IDictionary stateSaver) at
Microsoft.Crm.Setup.Common.ComposedInstaller.Install(IDictionary stateSaver) at
Microsoft.Crm.Setup.Server.ServerSetup.Upgrade(IDictionary data) at Microsoft.Crm.Setup.Server.ServerSetup.Run()

原因

發生此問題的原因是下列其中一個條件成立:

  • 用於匯入自定義檔案或升級 Microsoft Business Solutions - CRM 的時間超過執行 Microsoft SQL Server 之計算機的 Microsoft Dynamics CRM 中的預設值 OLEDBTimeout

  • 用於匯入自定義檔案或升級 Microsoft Dynamics CRM 的時間超過 ExtendedTimeout 用於長時間執行作業的值。

    注意

    ExtendedTimeout Microsoft Dynamics CRM 伺服器上的登錄專案不應該設定為大於 2,147,483,647 的值。 這是登錄專案可以使用的最大值 ExtendedTimout
    匯入自定義檔案可以是長時間執行的作業。

  • Customization.xml檔案的大小大於 7.5 MB(MB)。

    注意

    • 當您匯出自定義實體時,會建立Customization.xml檔案。
    • 根據預設,Microsoft ASP.NET 將 HTTP 要求大小限製為 8 MB。

解決方法

若要解決此問題,請使用下列一或多個方法。

方法 1 - 新增 OLEDBTimeout 和 ExtendedTimeout 登錄子機碼,以增加逾時值

警告

如果您使用登錄編輯程式或其他方法修改登錄時不正確,就可能發生嚴重的問題。 可能需要重新安裝作業系統才能解決這些問題。 Microsoft cannot guarantee that these problems can be solved. 修改登錄的風險請自負。

  1. 選取 [開始],選取 [執行],輸入 [regedit],然後選取 [確定]

  2. 找出下列登錄子機碼:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM

  3. 以滑鼠右鍵按兩下 [MSCRM],指向 [ 新增],然後選取 [DWORD 值 ] 以建立新的 DWORD 值。

  4. 將 DWORD 值重新命名為 OLEDBTimeout

    注意

    此值須區分大小寫。

  5. 以滑鼠右鍵按下 DWORD 值,然後選取 [ 修改]。

  6. 在 [編輯 DWORD 值] 對話框中,於 [值數據] 方塊中輸入 86400,選取 [基底] 選項中的 [十進位],然後選取 [確定]。

    注意

    根據執行 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 的值。 這是十六進位0x7FFFFFFF。
    • 重要事項:如果此索引鍵已經存在,請注意目前的值。 當您完成 Microsoft Dynamics CRM 的匯入或升級之後,請將此密鑰的值設定回原始值,如果金鑰先前不存在,請刪除該密鑰。 默認 OLEDBTimeout 值為30秒。

方法 2 - 修改兩個不同的 Web.config 檔案中的參數

  1. 依序選取 [開始]、[所有程式]、[系統管理工具],然後選取 [網際網路資訊服務 [IIS] 管理員

  2. 展開伺服器名稱,然後展開 [網站]。

  3. 以滑鼠右鍵按下 Microsoft CRM 網站,然後選取 [ 開啟]。

  4. 以滑鼠右鍵按兩下 Web.config 檔案,選取 [開啟With],然後選取 [記事本]。

  5. 在 [記事本] 中,找出下列這一行。

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

  6. 變更 executionTimeout="3600"change maxRequestLength="20000"

  7. 儲存並關閉 Web.config 檔案。

  8. 在您開啟 Web.config 檔案的目錄中,開啟 MSCRMServices 資料夾。

  9. 以滑鼠右鍵按兩下 Web.config 檔案,選取 [開啟With],然後選取 [記事本]。

  10. 在 [記事本] 中,找出下列這一行。

    <httpRuntime maxRequestLength="8192"/>

  11. 變更 maxRequestLength="20000"

  12. 儲存並關閉 Web.config 檔案。

    重要

    完成需要對 web.config 檔案進行上述變更的動作之後,這些參數應該重設為預設值。

其他相關資訊

OLEDBTimeout 值

值的單位 OLEDBTimeout 為秒。 根據預設, OLEDBTimeout 此值為 30 秒。 值 OLEDBTimeout 會控制用於單一 SQL 查詢的 SQL 逾時值。 當 SQL Server 多載時,增加 OLEDBTimeout 的值很有用。 此外,查詢需要較長的時間來處理。

ExtendedTimeout 值

值的單位 ExtendedTimeout 為毫秒。 根據預設, ExtendedTimeout 此值為 1000000 毫秒。 值 ExtendedTimeout 會控制用於匯入要求的 ASP.NET 逾時值。 逾時值必須大於完成整個匯入程序的時間。 當匯入程式花費很長的時間時,增加 ExtendedTimeout 的值就很有用。

注意

當 SQL Server 的效能緩慢或匯入許多自定義檔案時,匯入程式需要很長的時間。