การแก้ไข: ข้อผิดพลาดเมื่อคุณเชื่อมต่อกับอินสแตนซ์ที่มีชื่อของ SQL Server บนคอมพิวเตอร์แบบไคลเอ็นต์ที่ใช้ Windows Vista หรือ Windows Server 2008: "ไม่พบ SQL server ที่ระบุ" หรือ "ข้อผิดพลาดกำลังค้นหา/อินสแตนซ์เซิร์ฟเวอร์ระบุ"


สิ่งสำคัญ บทความนี้ประกอบด้วยข้อมูลที่แสดงให้คุณเห็นวิธีการตั้งค่าความปลอดภัยต่ำกว่าหรือวิธีปิดคุณลักษณะความปลอดภัยในคอมพิวเตอร์ คุณสามารถทำการเปลี่ยนแปลงเหล่านี้ได้ในการแก้ไขปัญหาที่เฉพาะเจาะจง ก่อนที่คุณทำการเปลี่ยนแปลงเหล่านี้ เราขอแนะนำให้ คุณประเมินความเสี่ยงที่เกี่ยวข้องกับการปฏิบัติตามวิธีการแก้ไขปัญหานี้ในสภาพแวดล้อมเฉพาะของคุณ หากคุณใช้วิธีแก้ปัญหานี้ ใช้ขั้นตอนเพิ่มเติมที่เหมาะสมเพื่อช่วยปกป้องคอมพิวเตอร์

อาการ


พิจารณาสถานการณ์สมมติต่อไปนี้ บนคอมพิวเตอร์ไคลเอนต์ที่กำลังเรียกใช้ Windows Vista หรือ Windows Server 2008 คุณเชื่อมต่อกับอินสแตนซ์ที่มีชื่อของ Microsoft SQL Server อินสแตนซ์ที่มีชื่อนั้นอยู่บนเซิร์ฟเวอร์ระยะไกล ในสถานการณ์สมมตินี้ การเชื่อมต่ออาจล้มเหลว

หมายเหตุ ปัญหานี้เกิดขึ้นเมื่อคุณเชื่อมต่อกับ SQL Server เวอร์ชันต่อไปนี้อย่างใดอย่างหนึ่ง:
  • Microsoft SQL Server 2000
  • Microsoft SQL Server 2005
  • Microsoft SQL Server 2008
ถ้าคุณใช้คอมโพเนนต์การเข้าถึงข้อมูล Windows (Windows DAC) 6.0 เพื่อเชื่อมต่อกับอินสแตนซ์ที่มีชื่อ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
[DBNETLIB] ไม่พบเซิร์ฟเวอร์ SQL ที่ระบุ
[DBNETLIB] ConnectionOpen (Connect())
ถ้าคุณใช้ SQL Native Client เพื่อเชื่อมต่อกับอินสแตนซ์ที่มีชื่อ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
[SQL Native Client] อินเทอร์เฟซเครือข่าย SQL: ข้อผิดพลาดกำลังค้นหา/อินสแตนซ์เซิร์ฟเวอร์ระบุ [xFFFFFFFF]
[SQL Native Client] เข้าสู่ระบบหมดเวลา
ปัญหานี้เกิดขึ้นเมื่ออินสแตนซ์ที่มีชื่อไม่มีอินสแตนซ์ของคลัสเตอร์ล้มเหลว นอกจากนี้ ปัญหานี้อาจเกิดขึ้นหากเซิร์ฟเวอร์ระยะไกลได้หลาย IP แอดเดรส

สาเหตุ


เมื่อคุณเชื่อมต่อกับอินสแตนซ์ที่มีชื่อ ไลบรารีของไคลเอ็นต์เครือข่ายส่งแพคเก็ตการร้องขอของผู้ใช้เดตาแกรมโพรโทคอล (UDP) ไปยังอยู่ IP ของอินสแตนซ์ที่มีชื่อ แล้ว SQL Server Browser ส่งกลับแพคเก็ต UDP ผลตอบรับที่ประกอบด้วยรายละเอียดเกี่ยวกับปลายทางการเชื่อมต่อ

อย่างไรก็ตาม ในแพ็คเก็ตการตอบสนอง UDP อยู่ IP ของแหล่งที่มาอาจไม่ใช่อยู่ IP ที่ถูกส่งแพ็คเก็ต UDP ร้องขอ ถ้าอินสแตนซ์ที่มีชื่อไม่มีอินสแตนซ์ของคลัสเตอร์ล้มเหลว อยู่ IP ของแหล่งที่มาคืออยู่ IP ของคอมพิวเตอร์ที่มีอยู่จริงแทนที่เป็นอยู่ IP เสมือนของเซิร์ฟเวอร์ระยะไกล ถ้าเซิร์ฟเวอร์ระยะไกลได้หลายที่อยู่ IP อยู่ IP ของแหล่งที่มาอาจจะเป็นอยู่ IP ที่กำหนดให้กับเซิร์ฟเวอร์ระยะไกลนั้น

ใน Windows Vistaไฟร์วอลล์ Windowsไม่อนุญาตสำหรับการแมปแหล่งหลวม ดังนั้นWindows Firewallลงเป็นแพ็คเก็ตการตอบสนอง UDP

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแมปแหล่งหลวม โปรดดูส่วน "เชื่อมต่อ UDP" ไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:

การแก้ปัญหา


ข้อมูล Service pack สำหรับ SQL Server 2008

สิ่งสำคัญ คุณใช้ service pack บนเซิร์ฟเวอร์ระยะไกลที่กำลังเรียกใช้ SQL Server 2008

เมื่อต้องการแก้ไขปัญหานี้ ขอรับ service pack ล่าสุดสำหรับ SQL Server 2008 สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
968382 วิธีการขอรับ service pack ล่าสุดสำหรับ SQL Server 2008


หมายเหตุ การแก้ไขเฉพาะจัดการปัญหาเมื่อ SQL server กำลังทำงานบน Windows Vista หรือระบบ 2008 เซิร์ฟเวอร์ของ Windows สำหรับการติดตั้ง SQL Server ในรุ่นก่อนหน้านี้ เช่น Windows Server 2003 คุณต้องใช้หนึ่งในวิธีที่อธิบายไว้ในส่วนของ Wordaround

วิธีแก้ปัญหา


เมื่อต้องการหลีกเลี่ยงปัญหานี้ ใช้หนึ่งในวิธีต่อไปนี้บนคอมพิวเตอร์ไคลเอนต์

วิธีที่ 1

ในสตริงการเชื่อมต่อ ระบุหมายเลขพอร์ต TCP หรือชื่อไปป์ที่ระบุชื่อการเชื่อมต่อกับอินสแตนซ์ที่มีชื่อ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์ของสายอักขระการเชื่อมต่อ โปรดดูส่วน "การสร้างสายอักขระการเชื่อมต่อที่ถูกต้อง" ไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:

วิธีที่ 2

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

ในไฟร์วอลล์ Windows มีความปลอดภัยขั้นสูง'ใน'แผงควบคุม' สร้างผิดกฎขาออกสำหรับแอพลิเคชันที่เชื่อมต่อกับ SQL Server เมื่อต้องการทำเช่นนี้ ให้ทำตามขั้นตอนเหล่านี้
  1. ในแผงควบคุม คลิกสองครั้งที่เครื่องมือการจัดการ
  2. ในเครื่องมือการจัดการคลิกสองครั้งที่ไฟร์วอลล์ Windows มีความปลอดภัยขั้นสูง
  3. ในไฟร์วอลล์ Windows มีความปลอดภัยขั้นสูงคลิกกฎขาออกและจากนั้น คลิกสร้างกฎ
  4. คลิกโปรแกรมและจากนั้น คลิกถัดไป
  5. คลิกที่เส้นทางโปรแกรมนี้ระบุเส้นทางของแอพลิเคชัน และจากนั้น คลิกถัดไป
  6. คลิก'อนุญาตการเชื่อมต่อและจากนั้น คลิกถัดไป
  7. ดำเนินการขั้นตอนของตัวช่วยสร้างการสร้างกฎขาออก

วิธีที่ 3

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

ในไฟร์วอลล์ Windows มีความปลอดภัยขั้นสูง'ใน'แผงควบคุม' สร้างกฎขาเข้าที่ช่วยให้การรับส่งข้อมูล จากทั้งหมดเป็น IP แอดเดรสของเซิร์ฟเวอร์ระยะไกล หรือทั้งหมดเป็นไปได้ที่อยู่ IP ที่ถูกกำหนดค่าสำหรับอินสแตนซ์ของคลัสเตอร์ล้มเหลว เมื่อต้องการทำเช่นนี้ ให้ทำตามขั้นตอนเหล่านี้
  1. ในแผงควบคุม คลิกสองครั้งที่เครื่องมือการจัดการ
  2. ในเครื่องมือการจัดการคลิกสองครั้งที่ไฟร์วอลล์ Windows มีความปลอดภัยขั้นสูง
  3. ในไฟร์วอลล์ Windows มีความปลอดภัยขั้นสูงคลิกกฎขาเข้าและจากนั้น คลิกสร้างกฎ
  4. คลิกกำหนดเองและจากนั้น คลิกถัดไป
  5. คลิกโปรแกรมทั้งหมดและจากนั้น คลิกถัดไป
  6. ในรายการโพรโทคอลชนิดคลิกใด ๆและจากนั้น คลิกถัดไป
  7. ภายใต้ที่อยู่ IP ระยะไกลไม่ตรงกับกฎนี้คลิกที่อยู่ These IPและจากนั้น คลิกเพิ่ม
  8. ในกล่องโต้ตอบที่อยู่ IPพิมพ์ IP แอดเดรสภายใต้เครือข่ายย่อยหรือที่อยู่ IP นี้อย่างใดอย่างหนึ่ง และจากนั้น คลิกตกลง
  9. เมื่อต้องการเพิ่มที่อยู่ IP อื่น ให้ทำซ้ำขั้นตอนที่ 7 ถึง 8 และจากนั้น คลิกถัดไป
  10. คลิก'อนุญาตการเชื่อมต่อและจากนั้น คลิกถัดไป
  11. ดำเนินการขั้นตอนของการขาเข้ากฎตัวช่วยสร้างใหม่

สถานะ


Microsoft ได้ยืนยันว่า นี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "ใช้กับ" ปัญหานี้ถูกแก้ไขครั้งแรกใน SQL Server 2008 Service Pack 1

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


สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟร์วอลล์ Windows มีความปลอดภัยขั้นสูงแวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft: