BUG: ไม่สามารถเชื่อมต่อกับอินสแตนซ์ชื่อคลัสเตอร์ที่ผ่านไฟร์วอลล์

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 318432 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
bug #: 356696 (shiloh_bugs)
ขยายทั้งหมด | ยุบทั้งหมด

อาการ

ถ้าคุณพยายามเชื่อมต่อกับอินสแตนซ์ชื่อคลัสเตอร์ที่อยู่ของ SQL Server ผ่านไฟร์วอลล์ และคุณใช้เพียงอินสแตนซ์ชื่อ (ตัวอย่างเช่น SQL_Virtual_Name\Instance_Name) ในสายอักขระการเชื่อมต่อ การเชื่อมต่อล้มเหลว และคุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้อย่างใดอย่างหนึ่ง:
ข้อความแสดงข้อผิดพลาด 1:
Specified SQL server not found.
เกิดข้อผิดพลาด 2
sql Server ไม่มีอยู่ หรือปฏิเสธการเข้าถึง
If you run a network trace on the server, you can see that the server actually receives the query from the client computer on UDP port 1434 for the virtual server IP address; however, the answer is sent with the physical IP address of the cluster node that is currently running SQL Server.

สาเหตุ

When a client computer connects to a computer that is running a clustered instance SQL Server, if the connection string does not specify the destination TCP port, the client library queries the server on port UDP 1434 to collect information about the instance.

When the server returns the information, the network frame contains the IP address of the physical node instead of the IP address of the virtual server. Depending on the firewall configuration, this network packet may be dropped, and the client may not receive any answer.

การหลีกเลี่ยงปัญหา

To work around this behavior you can either:
  • Specify the TCP port number in the connection string. For example, if your virtual SQL Server server is named VSERVER1, and it is listening on TCP/IP port number 2433, your connection string will contain the following attributes.
    Data Source=VSERVER1\instancename,2433;Network Library=dbmssocn
    หรือ

  • Create a SQL Server alias on each client by using the Client Network Utility. In the alias, specify the Net-Library to use (TCP/IP), and the port number. Use this alias in your connection string, and do not specify the Network Library attribute in your connection string.

    You can also automate the creation of the SQL Server alias on each client by using a Group Policy object (GPO) on the domain controller. Assume that your virtual instance of SQL Server is named VSERVER1\MyInstance. The virtual instance of SQL Server is listening on TCP/IP port number 2433. The name of the SQL Server alias that you want to create is MyAlias. To automate the creation of the SQL Server alias, follow these steps:
    1. On the domain controller, create a .reg file that contains the registry entry for the SQL Server alias.

      For example, create a Myreg.reg file that contains the following information.
      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
      "DSQUERY"="DBNETLIB"
      "MyAlias"="DBMSSOCN,VSERVER1\MyInstance,2433"
    2. To create an organizational unit (OU), follow these steps:
      1. OPENผู้ใช้ของไดเรกทอรีที่ใช้งานอยู่และคอมพิวเตอร์คลิกขวาDomainNameชี้ไปที่ใหม่แล้ว คลิกOrganizational Unit.
      2. ในการNew Object - Organizational Unitdialog box, enter a name for the OU, and then clickตกลง.
    3. Add the users and the computers to which you want to apply the GPO to the OU. To do this, drag the users and the computers to the OU that you created in step 2.
    4. Add a GPO to the OU. This GPO applies a user logon script or a computer startup script to import the .reg file. โดยให้ทำตามขั้นตอนต่อไปนี้::
      1. Right-click the OU that you created in step 2, and then clickคุณสมบัติ.
      2. ในการคุณสมบัติกล่องโต้ตอบ คลิกการนโยบายกลุ่มแท็บ
      3. ในการนโยบายกลุ่มแท็บ คลิกใหม่แล้ว คลิกแก้ไขเมื่อต้องการเปิดการตัวแก้ไขวัตถุนโยบายกลุ่มหน้าต่าง
      4. If you want to apply this GPO to users or to groups, follow this step:
        • ขยายการกำหนดค่าผู้ใช้ขยายWindows SettingsคลิกScripts (Logon/Logoff)แล้ว คลิกสองครั้งเข้าสู่ระบบ.
        If you want to apply this GPO to computers, follow this step:
        • ขยายการกำหนดค่าคอมพิวเตอร์ขยายWindows SettingsคลิกScripts (Startup/Shutdown)แล้ว คลิกสองครั้งเริ่มต้น.
      5. ในการคุณสมบัติกล่องโต้ตอบ คลิกShow Filesto open the folder that contains the script files.

        หมายเหตุ:A Universal Naming Convention (UNC) path appears in the Address bar of the folder window.
      6. Put the Myreg.reg file into the folder that you opened in step 4e.
      7. In the same folder, create a .bat file that contains the following information. Assume that the file name is Mybat.bat.
        Regedit /s <Path>\Myreg.reg
        หมายเหตุ
        • <path></path>represents the UNC path of the folder.
        • กระบวนการ/sswitch specifies to import the .reg file in silent mode.
      8. ในการคุณสมบัติกล่องโต้ตอบ คลิกadd.
      9. ในการAdd a Scriptกล่องโต้ตอบ คลิกเรียกดู.
      10. ในการเรียกดูdialog box, locate the Mybat.bat file, and then clickOPEN.
      11. ในการAdd a Scriptกล่องโต้ตอบ คลิกตกลง.
      12. ในการคุณสมบัติกล่องโต้ตอบ คลิกตกลง.
    5. Make sure that the users and the computers that you added in step 3 have theReadpermission and theApply Group Policypermission to the GPO. to do this, follow these steps:
      1. ในผู้ใช้ของไดเรกทอรีที่ใช้งานอยู่และคอมพิวเตอร์, right-click the OU that you created in step 2, and then clickคุณสมบัติ.
      2. ในการคุณสมบัติกล่องโต้ตอบ คลิกการนโยบายกลุ่มแท็บ
      3. ในการนโยบายกลุ่มtab, click the GPO that you created in step 4c, and then clickคุณสมบัติ.
      4. ในการคุณสมบัติกล่องโต้ตอบ คลิกการการรักษาความปลอดภัยแท็บ
      5. ในการการรักษาความปลอดภัยtab, make sure that the users and the computers to which the GPO applies are listed underชื่อกลุ่มหรือผู้ใช้.
      6. ตรวจสอบให้แน่ใจว่าการReadpermission and theApply Group Policypermission are specified for the users and the computers.

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน"

This problem is fixed in the following cases:
  • Microsoft SQL Server 2008 installed on Windows Server 2008
  • Microsoft SQL Server 2005 that co-exists together with Microsoft SQL Server 2008 on Windows Server 2008
This problem occurs in Microsoft SQL Server 2008 on Windows Server 2003.

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

หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
944390FIX: Error message when you connect to a named instance of SQL Server on a client computer that is running Windows Vista or Windows Server 2008: "Specified SQL server not found" or "Error Locating Server/Instance Specified"
936302List of known issues when you install SQL Server 2005 on Windows Server 2008

คุณสมบัติ

หมายเลขบทความ (Article ID): 318432 - รีวิวครั้งสุดท้าย: 13 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
Keywords: 
kbbug kbpending kbmt KB318432 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:318432

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com