หมดเวลาเกิดขึ้นเมื่อคุณนำเข้าแฟ้มการกำหนดเองที่มีขนาดใหญ่ใน Microsoft Dynamics CRM

นำไปใช้กับ: Microsoft Dynamics CRM 2011Dynamics CRM 4.0

สิ่งสำคัญ บทความนี้ประกอบด้วยข้อมูลเกี่ยวกับวิธีการปรับเปลี่ยนรีจิสทรี ตรวจสอบให้แน่ใจว่าได้สำรองรีจิสทรีก่อนที่จะแก้ไข ตรวจสอบให้แน่ใจว่า คุณทราบวิธีการคืนค่ารีจิสทรีหากเกิดปัญหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูล เรียกคืน และการปรับเปลี่ยนรีจิสทรี คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
256986คำอธิบายของรีจิสทรีของ Microsoft Windows

อาการ


เมื่อคุณนำเข้าแฟ้มการกำหนดเองที่มีขนาดใหญ่ลง ใน Microsoft Dynamics CRM 3.0 หรือ ใน Microsoft Dynamics CRM 4.0 หมดเวลาเกิดขึ้น นอกจากนี้ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้
ข้อความแสดงข้อผิดพลาด 1
ข้อผิดพลาดการหมดเวลาของการนำเข้า


ข้อความแสดงข้อผิดพลาด 2
เกินกว่าความยาวสูงสุดขอ
ข้อความแสดงข้อผิดพลาด 3
ไม่สามารถอัปโหลดแฟ้ม หรือการนำเข้าล้มเหลว
ข้อความแสดงข้อผิดพลาด 4
นี่ไม่ใช่แฟ้มการกำหนดเองที่ถูกต้อง กรุณาใช้การ แฟ้ม XML ที่สร้างขึ้น โดยการส่งออกการกำหนดเอง
ถ้ามีตั้งค่า DevErrors เป็น "เปิด" ในแฟ้ม Web.config คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
รายงานข้อผิดพลาดของแพลตฟอร์ม Microsoft CRM:


คำอธิบายข้อผิดพลาด: หมดเวลา


รายละเอียดข้อผิดพลาด: รายละเอียดเกี่ยวกับข้อผิดพลาดนี้ได้ไม่รับมาจากแพลตฟอร์ม


หมายเลขข้อผิดพลาด: 0x80040E31
นอกจากนี้ เมื่อคุณอัพเกรด Microsoft CRM ฐานข้อมูลขนาดใหญ่จาก Microsoft Business Solutions - 1.2 CRM ไป ยัง Microsoft Dynamics 3.0 หรือ จาก Microsoft Dynamics CRM 3.0 Microsoft Dynamics CRM 4.0 คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
09:54:25 | ข้อผิดพลาด | ติดตั้งข้อยกเว้น System.Exception: Microsoft.Crm.Setup.Server.InstallDatabaseAction การดำเนินการล้มเหลว ---> System.Data.SqlClient.SqlException: การหมดเวลาหมดอายุ การหมดเวลาของรอบระยะเวลาที่ผ่านไปก่อนที่จะดำเนินการเสร็จสมบูรณ์ของการดำเนินงาน หรือเซิร์ฟเวอร์ไม่ตอบสนอง ใน System.Data.SqlClient.SqlCommand.ExecuteNonQuery() ใน Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql (ฐานข้อมูล InstallDatabase สายอักขระ sql หมดเวลา Int32) ที่ Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute() ที่ Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install (Int32 languageCode แฟ้มสตริง การอัพเกรดบูลีน) ที่ Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do (IDictionary พารามิเตอร์) ที่ Microsoft.Crm.Setup.Common.Action.ExecuteAction (การกระทำการดำเนินการ พารามิเตอร์ IDictionary เลิกทำบูลีน) ---สิ้นสุดของการติดตามสแต็คข้อยกเว้นภายใน---ใน Microsoft.Crm.Setup.Common.Action.ExecuteAction (การกระทำการดำเนินการ พารามิเตอร์ 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.Upgrade (IDictionary ข้อมูล) ที่ Microsoft.Crm.Setup.Server.ServerSetup.Run()

สาเหตุ


ปัญหานี้เกิดขึ้นเนื่องจากมีเงื่อนไขใด ๆ ต่อไปนี้เป็นจริง:
  • เวลาที่จะใช้ สำหรับการนำเข้าแฟ้มการกำหนดเอง หรือการปรับรุ่น Microsoft Business Solutions - CRM เกินกว่าค่าเริ่มต้น OLEDBTimeout ใน Microsoft Dynamics CRM สำหรับคอมพิวเตอร์ที่กำลังเรียกใช้ Microsoft SQL Server
  • เวลาที่จะใช้ สำหรับการนำเข้าแฟ้มการกำหนดเอง หรือการปรับรุ่น Microsoft CRM เกินกว่าค่า ExtendedTimeout ที่ใช้สำหรับการดำเนินงานที่รันเป็นเวลานาน

    หมายเหตุ ไม่ควรตั้งค่ารายการรีจิสทรี ExtendedTimeout บนเซิร์ฟเวอร์ Microsoft Dynamics CRM กับค่าที่มีขนาดใหญ่กว่า 2147483647 ซึ่งเป็นค่าสูงสุดที่สามารถใช้รายการรีจิสทรี ExtendedTimout

    หมายเหตุ นำเข้าแฟ้มการกำหนดเองอาจเป็นการดำเนินงานที่รันเป็นเวลานาน
  • ขนาดของแฟ้ม Customization.xml มีขนาดใหญ่กว่า 7.5 เมกะไบต์ (MB)

    หมายเหตุ
    • แฟ้ม Customization.xml ถูกสร้างขึ้นเมื่อคุณส่งออกเอนทิตีแบบกำหนดเอง
    • โดยค่าเริ่มต้น Microsoft ASP.NET จำกัดขนาดการร้องขอ HTTP ไป 8 MB

การแก้ปัญหา


เมื่อต้องการแก้ไขปัญหานี้ ใช้อย่างน้อยหนึ่งวิธีต่อไปนี้

วิธีที่ 1: เพิ่มการ OLEDBTimeout และคีย์ย่อยของรีจิสทรี ExtendedTimeout เพื่อเพิ่มค่าการหมดเวลา

คำเตือน ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีอย่างไม่ถูกต้อง โดยใช้ Registry Editor หรือ โดยใช้วิธีอื่น ปัญหาเหล่านี้อาจกำหนดให้คุณต้องติดตั้งระบบปฏิบัติการของคุณ Microsoft ไม่สามารถรับประกันว่า ปัญหาเหล่านี้จะสามารถแก้ไข ปรับเปลี่ยนรีจิสทรีคุณต้องเสี่ยง
  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ในกล่องข้อมูลค่าและจากนั้น คลิกตกลง

    หมายเหตุ
    • ในกล่องValue dataคุณสามารถพิมพ์ค่าที่มากกว่า 1000000 อย่างไรก็ตาม พิมพ์ค่าที่มีขนาดใหญ่กว่า 2147483647 นี่คือเลขฐานสิบหก 0x7FFFFFFF
    • สิ่งสำคัญ: ถ้าคีย์นี้แล้ว ให้สังเกตว่า ค่าปัจจุบัน หลังจากที่คุณเสร็จสิ้นการนำเข้าหรือปรับรุ่นสำหรับ Microsoft Dynamics CRM ตั้งค่าของคีย์นี้กลับไปยังค่าเดิม หรือลบคีย์ดังกล่าวไม่เคยมีอยู่ OLEDBTimeout ค่าเริ่มต้นคือ 30 วินาที

วิธีที่ 2: ปรับเปลี่ยนพารามิเตอร์ในแฟ้ม Web.config ทั้งสองที่แตกต่างกัน

  1. คลิกเริ่มคลิกโปรแกรมทั้งหมดคลิกเครื่องมือการจัดการแล้ว คลิ กโปรแกรมจัดการบริการข้อมูลทางอินเทอร์เน็ต (IIS)
  2. ขยายชื่อเซิร์ฟเวอร์ และจากนั้น ขยายเว็บไซต์
  3. คลิกขวาเว็บไซต์Microsoft CRM v3.0หรือเว็บไซต์Microsoft CRM v4.0และจากนั้น คลิกเปิด
  4. คลิกขวาแฟ้ม Web.config คลิกOpen Withแล้ว คลิ กแผ่นจดบันทึก
  5. ใน Notepad ค้นหาบรรทัดต่อไปนี้
    <httpRuntime executionTimeout="300" maxRequestLength="8192"/>
  6. เปลี่ยน executionTimeout = "3600" และเปลี่ยน maxRequestLength = "20000"
  7. บันทึก และปิดแฟ้ม Web.config
  8. ในไดเรกทอรีที่คุณเปิดแฟ้ม Web.config เปิดโฟลเดอร์ MSCRMServices
  9. คลิกขวาแฟ้ม Web.config คลิกOpen Withแล้ว คลิ กแผ่นจดบันทึก
  10. ใน Notepad ค้นหาบรรทัดต่อไปนี้
    <httpRuntime maxRequestLength="8192"/>
  11. เปลี่ยน maxRequestLength = "20000"
  12. บันทึก และปิดแฟ้ม Web.config
    • สิ่งสำคัญ: หลังจากเสร็จสิ้นการดำเนินการที่จำเป็นต้องมีการเปลี่ยนแปลงแฟ้ม web.config ข้างต้น พารามิเตอร์เหล่านี้ควรถูกตั้งค่าใหม่เป็นค่าเริ่มต้น

ข้อมูลเพิ่มเติม


ค่า OLEDBTimeout

หน่วยของค่า OLEDBTimeout เป็นวินาที โดยค่าเริ่มต้น ค่า OLEDBTimeout คือ 30 วินาที ค่า OLEDBTimeout ควบคุมค่าการหมดเวลาของ SQL ที่ใช้สำหรับการสอบถาม SQL ที่เดียว ค่า OLEDBTimeout เพิ่มขึ้นมีประโยชน์เมื่อมีการโอเวอร์โหลดเซิร์ฟเวอร์ SQL นอกจากนี้ แบบสอบถามใช้เวลานานขึ้นในการประมวลผล

ค่า ExtendedTimeout

หน่วยของค่า ExtendedTimeout เป็นหน่วยมิลลิวินาที โดยค่าเริ่มต้น ค่า ExtendedTimeout เป็นหน่วยมิลลิวินาที 1000000 ค่า ExtendedTimeout ควบคุมค่าการหมดเวลาของ ASP.NET ที่ใช้สำหรับคำขอการนำเข้า ค่าหมดเวลาต้องมากกว่าเวลาสำหรับเสร็จสิ้นกระบวนการนำเข้าทั้งหมด ค่า ExtendedTimeout เพิ่มขึ้นมีประโยชน์เมื่อกระบวนการนำเข้าใช้เวลานาน

หมายเหตุ เมื่อประสิทธิภาพการทำงานของ SQL server ที่ช้า หรือเมื่อมีการกำหนดเองหลายแฟ้มเพื่อนำเข้า กระบวนการนำเข้าใช้เวลานาน