วันนี้ฉันมีความสุขมาก ในที่สุดโครงการก็ออนไลน์แล้ว เพียงแต่ว่าปัญหาที่พบก่อนที่จะออนไลน์นั้นช่างเหนื่อยล้า - - แต่ในที่สุดก็แก้ไขได้ - ฉันจะบอกปัญหาให้คุณทราบที่นี่ หวังว่าจะให้ความช่วยเหลือเพื่อนที่ต้องการ ~~
โครงการ: โครงการ DOTNET การพัฒนา C# ฟังก์ชันหลักคือการเข้าถึงอินเทอร์เฟซระยะไกลผ่านส่วนประกอบ COM
สภาพแวดล้อมการทำงาน: Windows 2003 Server + IIS6.0 + .Net 1.1
ปัญหา: ส่วนประกอบและระบบ COM สามารถใช้งานได้ตามปกติภายใต้ระบบปฏิบัติการ WINDOWS2000 แต่หลังจากย้ายไปยัง WIN2003 กระบวนการจะค้างเมื่อโปรแกรมเรียกส่วนประกอบต่างๆ และบางครั้งข้อผิดพลาดที่ระบุว่าเซิร์ฟเวอร์พบสถานการณ์ที่ไม่คาดคิดจะถูกส่งกลับ~
การวิเคราะห์สาเหตุ: ประการแรก ส่วนประกอบที่ส่งผ่านระบบปฏิบัติการอื่น ระบุว่าไม่น่าจะมีปัญหากับส่วนประกอบ วิธีการลงทะเบียนส่วนประกอบ COM และการอ้างอิงโครงการ DOTNET นั้นถูกต้อง แต่เกิดข้อผิดพลาดในขั้นตอนการเรียกส่วนประกอบ และหน้าที่ของส่วนประกอบ COM คือการส่งที่อยู่ IP และพอร์ต ในการเข้าถึงอินเทอร์เฟซระยะไกล ให้ใส่ใจกับการทำงานของการเชื่อมต่อเครือข่ายระยะไกล เมื่อค้นหาปัญหาที่คล้ายกันบนอินเทอร์เน็ต บทความส่วนใหญ่จะเกี่ยวกับการอนุญาตส่วนประกอบ ฉันยังตั้งค่าส่วนประกอบตามบทความและการอนุญาตของผู้ใช้การเข้าถึง IIS ฯลฯ ได้รับการอนุญาตสูงสุด แต่ผลลัพธ์ก็ยังใช้งานไม่ได้ - กำลังจะพังทลาย.. -
วิธีแก้ไข: หลังจากประสบปัญหานี้มาสองสามวัน บริษัทได้ติดต่อฝ่ายสนับสนุนลูกค้าของ Microsoft และ Microsoft ได้ให้วิธีการตรวจสอบสิทธิ์ด้านความปลอดภัยของกลุ่มแอปพลิเคชันใน IIS6.0 หลังจากตรวจสอบแล้ว ในคุณสมบัติของพูลแอปพลิเคชันใน IIS จะมีบัญชีความปลอดภัยเริ่มต้น "บริการเครือข่าย" อยู่ใต้แท็บ "ข้อมูลประจำตัว" ซึ่งก็คือบริการเครือข่าย Network Service เป็นบัญชีที่มีอยู่แล้วภายใน Windows Server 2003 ซึ่งอยู่ในกลุ่ม IIS_WPG สมาชิกของ IIS_WPG มีสิทธิ์ NTFS ที่เหมาะสมและสิทธิ์ผู้ใช้ที่จำเป็น ตามบทความบนเว็บไซต์ Microsoft บัญชี Network Service มีกระบวนการที่ทำหน้าที่เป็น กระบวนการของผู้ปฏิบัติงาน IIS 6 สิทธิ์ที่เพียงพอในการระบุและเข้าถึงเครือข่าย แต่ฉันไม่รู้ว่าทำไม สิทธิ์ของบริการเครือข่ายที่นี่ไม่เพียงพอ ดังนั้นจึงไม่สามารถเรียกส่วนประกอบเพื่อเข้าถึงอินเทอร์เฟซระยะไกลได้ วิธีแก้ไขคือการตั้งค่าบัญชี IIS_WPG ให้อ่านและดำเนินการ แสดงรายการไดเร็กทอรีโฟลเดอร์ อ่าน และบริการเครือข่ายต้องการสิทธิ์การควบคุมเต็มรูปแบบ ตามวิธีการข้างต้น ผมกำหนด NetWork Service ให้กับกลุ่ม Administrator ^_|| รีสตาร์ท IIS แล้วรันโปรแกรม ก็ OK แล้วคอมโพเนนต์ก็ถูกเรียกตามปกติ~~
ดังนั้นหากเพื่อนๆ คนไหนพบว่าการเรียกคอมโพเนนต์ COM ไม่สามารถทำได้ ใช้อีกครั้งพิจารณาใช้ Permissions ของพูลโปรแกรม ~~
อ้างถึงบทความต่อไปนี้: http://www.microsoft.com/china/technet/community/columns/insider/iisi1203.mspx
http://flyskywlh.cnblogs.com /เก็บถาวร/2006/07/07 /445508.html