อะไรคือสาเหตุที่ทำให้ Windows-ท่อชื่อท้องถิ่นล้มเหลว?


14

ฉันทำงานอย่างหนักกับมันตลอดทั้งวันและฉันก็ติดอยู่ เช้านี้เพื่อนร่วมงานชาวเอเชียของเราโทรหาฉันเพราะ SolidWorks addin สำหรับระบบจัดการข้อมูลผลิตภัณฑ์ของเราไม่สามารถสื่อสารกับแอปพลิเคชันหลักในท้องถิ่นได้ ปัญหามีผลกับคอมพิวเตอร์ของผู้ใช้ปลายทางในโดเมน Windows เราใช้ READPIPE และ MAKEPIPE utils จากกล่องเครื่องมือเซิร์ฟเวอร์ SQL เพื่อค้นหาว่าปัญหาพื้นฐานคือฟีเจอร์ Windows pipe

  • MAKEPIPE util สร้างไปป์และกำลังรอลูกค้า READPIPE util return: "Failed to Open Pipe สถานะ 53. " ตามที่http://support.microsoft.com/kb/110905 แสดงว่าไม่พบชื่อเครือข่าย ในเครื่องคอมพิวเตอร์ของฉันไปป์ส่ง "hello" จาก READPIPE ไปยัง MAKEPIPE โดยไม่มีปัญหา
  • กระบวนการเซิร์ฟเวอร์ที่เปิดใช้งาน named-pipes กำลังทำงานอยู่
  • การตั้งค่าภายใต้การดู HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lanmanserver \ Parameters จะไม่เป็นไร ไม่มีการตั้งค่าไพพ์ของไฟร์วอลล์
  • ปัญหาส่งผลกระทบต่อผู้ใช้บางคน แต่ไม่ใช่ทั้งหมด เราไม่ได้ทำการเปลี่ยนแปลงกับกลุ่มโดเมนยกเว้นสำหรับกลุ่มเครือข่ายบางกลุ่ม
  • ฉันเข้าสู่ระบบในฐานะผู้ดูแลระบบและท่อยังใช้งานไม่ได้

ความช่วยเหลือใด ๆ ที่เป็นที่นิยม! ขอขอบคุณ.


ผู้ใช้ที่ได้รับผลกระทบสามารถเชื่อมต่อกับไฟล์ที่ใช้ร่วมกันบนเซิร์ฟเวอร์ที่เป็นปัญหาได้หรือไม่?
แฮร์รี่จอห์นสตัน

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

เมื่อคุณสร้างปัญหาขึ้นอีกครั้งให้ล็อกอินเข้าสู่คอมพิวเตอร์ที่ได้รับผลกระทบในฐานะผู้ดูแลระบบด้วย READPIPE และ MAKEPIPE คำสั่งที่คุณใช้คืออะไร (โปรดแก้ไขโพสต์ของคุณเพื่อรวมไว้แทนที่จะใส่ไว้ในความคิดเห็น)
Harry Johnston

ขอบคุณสำหรับการสนับสนุน. นี่เป็นฮาร์ดไดรฟ์และฉันจะจัดทำเอกสารการแก้ปัญหาที่นี่
user152700

คำตอบ:


12

ต้องการเวลา 1,5 วันในการพิจารณาทุกกรณี ที่นี่สำหรับเอกสาร

อาการ

  • การลากและวางลงในแอปพลิเคชันไม่ทำงาน
  • การสื่อสารระหว่างกระบวนการเช่นระหว่างแอพหลักและแอดอินไม่ทำงาน

สาเหตุ / พื้นหลัง

การสื่อสารระหว่างกระบวนการถูกนำไปใช้กับแอพบางตัวผ่านทาง Windows ที่มีชื่อว่า pipes (เพื่อไม่ให้สับสนกับไพพ์สไตล์ UNIX) ดูเอกสาร MSDN: http://msdn.microsoft.com/en-us/library/aa365590.aspx

อาจมีสาเหตุที่แตกต่างกันสำหรับชื่อท่อ Windows ไม่ทำงาน ในการตรวจสอบว่าท่อเป็นสาเหตุของปัญหาสามารถใช้เครื่องมือ MAKEPIPE และ READPIPE ได้ บทความ KB นี้อธิบายขั้นตอนการทดสอบ: http://support.microsoft.com/kb/68941 เครื่องมือกระบวนการ Sysinternals explorer อาจเป็นประโยชน์ในการค้นหาไพพ์ที่เปิดอยู่ในปัจจุบัน ใช้ตัวเลือก "Find -> Find Handle หรือ DLL ... " แล้วป้อนรูปแบบ "\ Device \ NamedPipe \" มันจะแสดงกระบวนการที่มีท่อที่เปิด http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

การแก้ไขปัญหา

สาเหตุที่ 1: แอปพลิเคชันถูกบล็อกโดยไฟร์วอลล์ท่อ

Windows สามารถบล็อกแอปพลิเคชันไม่ให้ใช้ไพพ์ที่มีชื่อ ไฟร์วอลล์นี้ไม่ได้เปิดใช้งานตามปกติและมีการกำหนดค่าผ่านรีจิสทรี ดูบทความสนับสนุน MS ที่นี่: http://support.microsoft.com/kb/925890 ตรวจสอบว่าไม่ได้เปิดใช้งานไฟร์วอลล์ไพพ์หรือเพิ่ม Keytech และ Addins ทั้งหมดไปยังรายการแอปพลิเคชันที่อนุญาต

สาเหตุที่ 2: ไม่เปิดใช้งานบริการแชร์ไฟล์และเครื่องพิมพ์

ไปป์ที่มีชื่อถูกเปิดใช้งานโดยกระบวนการที่ควบคุมการแชร์ไฟล์และเครื่องพิมพ์ ตรวจสอบว่ากระบวนการนี้กำลังทำงานโดยใช้เครื่องมือ Windows Services ชื่อบริการจะแสดงเป็น“ เซิร์ฟเวอร์” ในรายการบริการ ชื่อบริการคือ LanmanServer และ EXE คือ C: \ Windows \ system32 \ svchost.exe -k netsvcs

สาเหตุที่ 3: ไฟร์วอลล์ Windows กำลังบล็อก LanmanServer

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


3
สาเหตุที่ 1) ไพพ์ไฟร์วอลล์มีผลกับการเข้าถึงรีโมตที่ระบุชื่อเท่านั้น อย่างไรก็ตามโปรดทราบว่าการเชื่อมต่อไปยังไพพ์ที่มีชื่อโดยใช้ \\ machinename \ pipename อาจนับเป็นการเข้าถึงจากระยะไกลแม้ว่าแมชชีนเนมจะเป็นเครื่องโลคอล
แฮร์รี่จอห์นสตัน

3
สาเหตุที่ 2) ในทำนองเดียวกันการแชร์ไฟล์และเครื่องพิมพ์จำเป็นสำหรับการเข้าถึงไปป์ที่มีชื่อระยะไกล อีกครั้ง \\ ชื่อเครื่อง \ pipename อาจนับเป็นการเข้าถึงระยะไกลสำหรับวัตถุประสงค์นี้
แฮร์รี่จอห์นสตัน

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

@HarryJohnston การตรวจสอบความถูกต้องประเภทใดที่ถูกบล็อก ชอบServiceHost.Authenticationที่อธิบายไว้ที่นี่ ?
iCantSeeSharp

หากคุณอยู่ในโดเมนและการเข้าถึงเครือข่ายของคุณไปยังตัวควบคุมโดเมนถูกบล็อกโดย Windows Firewall (หรือด้วยเหตุผลอื่น) คุณอาจไม่สามารถตรวจสอบสิทธิ์ได้ นั่นไม่ควรส่งผลกระทบต่อการเข้าถึงไปป์ในท้องที่จริงๆ แต่ YMMV
แฮร์รี่จอห์นสตัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.