Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาดของ Windows

จะแก้ไขข้อผิดพลาด 'การเชื่อมต่อที่มีอยู่ถูกบังคับปิดโดยโฮสต์ระยะไกล' ได้อย่างไร

คอมพิวเตอร์ระยะไกลคือเครื่องที่ไม่มีสถานะทางกายภาพ สามารถเข้าถึงได้ผ่านเครือข่ายคอมพิวเตอร์บางประเภทเท่านั้น โฮสต์ระยะไกลคือคอมพิวเตอร์ที่โฮสต์เครือข่ายซึ่งโฮสต์คอมพิวเตอร์ระยะไกลและไคลเอนต์ระยะไกลคือผู้ใช้ของไคลเอนต์ระยะไกลบนเครือข่าย คุณลักษณะนี้ได้ปฏิวัติกระบวนการมากมายและมีขอบเขตที่ดีในอนาคตเช่นกัน

จะแก้ไขข้อผิดพลาด  การเชื่อมต่อที่มีอยู่ถูกบังคับปิดโดยโฮสต์ระยะไกล  ได้อย่างไร

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

อะไรเป็นสาเหตุของข้อผิดพลาด 'การเชื่อมต่อที่มีอยู่ถูกบังคับปิดโดยโฮสต์ระยะไกล' ใน Windows

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

  • การใช้งาน TLS 1.1/1.0:  หากแอปพลิเคชันทำงานบน TLS 1.1 หรือ TLS 1.0 ข้อผิดพลาดนี้อาจทำให้เกิดข้อผิดพลาดเนื่องจากค่าเสื่อมราคา TLS 1.2 เป็นแนวทางในการเลือกโปรโตคอลที่แอปพลิเคชันใช้
  • ปิดการใช้งานการเข้ารหัส: หากการเข้ารหัสถูกปิดใช้งานสำหรับเครื่องของคุณ จะเป็นการป้องกันการใช้งาน TLS 1.2 และจะกลับไปใช้ TLS 1.0 ซึ่งอาจทำให้เกิดข้อผิดพลาดได้
  • การติดตั้งซ็อกเก็ต:  ในบางกรณี การใช้ซ็อกเก็ตบางประเภททำให้เกิดข้อผิดพลาด มีข้อบกพร่องในการใช้งานบางอย่างโดยแอปพลิเคชัน “.NET” และอาจทำให้เกิดข้อผิดพลาดนี้ได้
  • ไม่มีรหัส:  สำหรับบางคนที่ใช้ Entity Framework จะพบว่ามีโค้ดบางบรรทัดขาดหายไปเนื่องจากเกิดข้อผิดพลาดขึ้น
  • เฟรมเวิร์ก “.NET” ที่ล้าสมัย:  ในบางกรณี ถ้า “.NET” Framework ถูกปิดใช้งาน ข้อผิดพลาดนี้อาจถูกเรียกใช้ งานบางอย่างต้องการเฟรมเวิร์ก “.NET” ในการอัปเดตเป็นเวอร์ชันล่าสุดเพื่อให้ทำงานได้อย่างถูกต้อง

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

โซลูชันที่ 1:การเปิดใช้งานการเข้ารหัส

หากการเข้ารหัสถูกปิดใช้งานสำหรับเครื่องของคุณ การใช้งาน TLS 1.2 ถือเป็นสิ่งต้องห้าม ดังนั้น ในขั้นตอนนี้ เราจะเปิดใช้งานการเข้ารหัส สำหรับสิ่งนั้น:

  1. กด “Windows ” + “อาร์ ” เพื่อเปิดพรอมต์เรียกใช้
  2. พิมพ์ “regedit” และกด “เข้าสู่ “. จะแก้ไขข้อผิดพลาด  การเชื่อมต่อที่มีอยู่ถูกบังคับปิดโดยโฮสต์ระยะไกล  ได้อย่างไร
  3. นำทางไปยังที่อยู่ต่อไปนี้
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.3031

    นำทางไปยังที่อยู่นี้หากไม่มี “SchUseStrongCrypto ” ในบานหน้าต่างด้านขวา

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
  4. ในบานหน้าต่างด้านขวา ให้ดับเบิลคลิกที่ “SchUseStrongCrypto ” และป้อน “1 ” เป็นข้อมูลค่า จะแก้ไขข้อผิดพลาด  การเชื่อมต่อที่มีอยู่ถูกบังคับปิดโดยโฮสต์ระยะไกล  ได้อย่างไร
  5. คลิกที่ “ตกลง ” เพื่อบันทึกการเปลี่ยนแปลงของคุณและตรวจสอบ เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่

แนวทางที่ 2:การบังคับใช้ TLS 1.2

หากแอปพลิเคชันได้รับการกำหนดค่าให้ใช้ TLS 1.1 หรือ TLS 1.0 แทน TLS 1.2 อาจทำให้เกิดข้อผิดพลาดนี้ได้ ดังนั้น ในขั้นตอนนี้ เราจะกำหนดค่าคอมพิวเตอร์ของเราให้ใช้ TLS 1.2 สำหรับสิ่งนั้น:

  1. ไปที่รากของไซต์และคลิกขวาที่ “global.asax” ไฟล์.
  2. เลือก “ดู รหัส ” จากรายการ
  3. ควรมี “Application_Start ” เมธอด เพิ่มโค้ดบรรทัดต่อไปนี้ในเมธอดนั้น
    if (ServicePointManager.SecurityProtocol.HasFlag(SecurityProtocolType.Tls12) == false)
                {
                    ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12;
                }
    จะแก้ไขข้อผิดพลาด  การเชื่อมต่อที่มีอยู่ถูกบังคับปิดโดยโฮสต์ระยะไกล  ได้อย่างไร
  4. บันทึก การเปลี่ยนแปลงของคุณและตรวจสอบ เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่

โซลูชันที่ 3:การเปลี่ยนการใช้งานซ็อกเก็ต

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

  1. ตรวจสอบว่าคุณมี “StateObjec t” ที่มี “ไบต์สาธารณะ[] บัฟเฟอร์ =ไบต์ใหม่[1024] ซ็อกเก็ตซ็อกเก็ตสาธารณะ “.
  2. เรียก “รับ(ซ็อกเก็ต) ” และเรียกใช้รหัสต่อไปนี้ใน “เป็นโมฆะ ReceiveCallback(IAsyncResult ar)
     SocketError errorCode;
        int nBytesRec = socket.EndReceive(ar, out errorCode);
        if (errorCode != SocketError.Success)
        {
            nBytesRec = 0;
        }
  3. ตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่หลังจากติดตั้งโค้ดนี้

โซลูชันที่ 4:การเพิ่มบรรทัดคำสั่ง (สำหรับ Entity Framework เท่านั้น)

หากคุณกำลังใช้ Entity Framework อาจเป็นไปได้ว่าอาจมีโค้ดบางบรรทัดหายไป ดังนั้น ในขั้นตอนนี้ เราจะเพิ่มโค้ดบรรทัดนั้นเพื่อแก้ไขปัญหานี้ สำหรับสิ่งนั้น:

  1. เปิด “.edmx . ของคุณ ” และเปิด “.context.tt ” ไฟล์ด้านล่างครับ
  2. เปิด “.context.cs ” และเพิ่มโค้ดบรรทัดต่อไปนี้ให้กับตัวสร้างของคุณ
    public DBEntities() 
            : base("name=DBEntities") 
        { 
            this.Configuration.ProxyCreationEnabled = false; // ADD THIS LINE !
        }
  3. ตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่หลังจากเพิ่มโค้ดบรรทัดนี้

แนวทางที่ 5:กำลังอัปเดต .NET Framework

จำเป็นต้องใช้ ".NET" Framework เวอร์ชันล่าสุดเพื่อให้ทุกอย่างทำงานได้อย่างราบรื่น ดังนั้น ในขั้นตอนนี้ เราจะทำการดาวน์โหลดเวอร์ชันล่าสุดจากเว็บไซต์และติดตั้ง สำหรับสิ่งนั้น:

  1. ไปที่ลิงก์นี้เพื่อดาวน์โหลดการตั้งค่า
  2. ดำเนินการ “.exe ” เพื่อเริ่มกระบวนการติดตั้ง จะแก้ไขข้อผิดพลาด  การเชื่อมต่อที่มีอยู่ถูกบังคับปิดโดยโฮสต์ระยะไกล  ได้อย่างไร
  3. ติดตาม คำแนะนำบนหน้าจอเพื่อติดตั้งแอปพลิเคชันบนคอมพิวเตอร์ของคุณ
  4. ตรวจสอบ เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่หลังจากการติดตั้งเสร็จสิ้น