การแก้ไขปัญหาสิทธิ์ที่พบโดยทั่วไปและปัญหาที่เกี่ยวข้องกับการรักษาความปลอดภัยใน ASP.NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 910449 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
คอลัมน์เสียงสนับสนุน asp.net

สิทธิ์ที่พบโดยทั่วไปและปัญหาที่เกี่ยวข้องกับการรักษาความปลอดภัยใน Microsoft ASP.NET ในการแก้ไขปัญหา

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

เนื้อหาบนหน้านี้

hello อยู่ A.G Vignesh จากทีม ASP.NET ยินดีต้อนรับสู่คอลัมน์ ASP.NET สนับสนุนเสียง ฉันได้รับวิศวกรฝ่ายสนับสนุนของนักพัฒนาสำหรับซ้ำสองปีที่ Microsoft ในขณะนี้ และฉันจะมีการใช้ในเวลาของฉัน focusing ASP.NET และบริการข้อมูลทางอินเทอร์เน็ตของ Microsoft (IIS)

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

เครื่องมือที่มีประโยชน์

ก่อนที่คุณพยายามที่จะแก้ไขสิ่งที่จะใช้งานไม่ได้ คุณจำเป็นต้อง familiarize ด้วยตัวคุณเอง ด้วยเครื่องมือบางอย่างซึ่งจะช่วยให้คุณแคบลงปัญหา ในกรณีของเรา เราจะสนใจในเครื่องมือเช่น FileMon, RegMon และตรวจ สอบความปลอดภัย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ FileMon แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ RegMon แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://technet.microsoft.com/en-us/sysinternals/bb963881.aspx

เจาะลึกลงเพื่อแยกปัญหา

  • ทำงานได้โปรแกรมประยุกต์ที่เคยได้หรือไม่ ถ้าใช่ แล้วสิ่งที่เปลี่ยนแปลงที่อาจทำแบ่งโปรแกรมประยุกต์หรือไม่ เป็นไปได้ว่า มีการนำไปใช้การปรับปรุงซอฟต์แวร์หรือการปรับปรุงการรักษาความปลอดภัยบนเซิร์ฟเวอร์ rollout รหัสยังไม่ได้เกิดปัญหา
  • เพ.html และ.asp อย่างง่ายทำหน้าที่จาก IIS หรือไม่
  • ผิดแอพลิเคชันโยกย้าย IIS รุ่นอื่นหรือไม่
  • โปรแกรมประยุกต์อื่น ASP.NET บนล้มเหลวของเซิร์ฟเวอร์ด้วยข้อผิดพลาดที่เหมือนกันบ้าง นี่แอพลิเคชันเฉพาะที่ล้มเหลวหรือไม่
  • ทำการปัญหาเกิดขึ้น สำหรับผู้ใช้ทั้งหมด หรือ สำหรับผู้ใช้ที่เฉพาะเจาะจงได้อย่างไร
  • มีปัญหา reproducible ขณะเรียกดูในแบบโลคัลบนเว็บเซิร์ฟเวอร์ หรือไม่นั้น reproducible เพียงไม่กี่ไคลเอ็นต์ได้หรือไม่
  • ถ้าคุณกำลังใช้การเลียนแบบ แล้วมีผู้ใช้ impersonated มีในการเข้าถึงทรัพยากรจำเป็นหรือไม่
คำถามที่ถามข้างต้นจะเป็นประโยชน์ในการวินิจฉัยปัญหา ถ้าคุณกำลังลงรายการบัญชีปัญหาของคุณบนฟอรั่ม ASP.NET ใด ๆ และถ้าคุณมีคำตอบสำหรับคำถามเหล่านี้ส่วนใหญ่แล้ว จากนั้นมีแนวโน้มว่า คุณจะได้รับตัวชี้ที่รวดเร็วหรือวิธีแก้ไขปัญหาของคุณ คีย์ถูกลงรายการบัญชีข้อผิดทั้ง ASP.NET สแต็คการสืบค้นกลับพลาด ถ้าเกี่ยวข้อง แทนที่การพูด "ฉันกำลังรับข้อผิดพลาดที่ปฏิเสธการเข้าถึงขณะพยายามเรียกใช้โปรแกรมประยุกต์ ASP.NET ของฉัน ผู้ช่วยหรือไม่" ไม่ได้ง่ายขึ้นสำหรับผู้อื่นให้ดูที่การสืบค้นกลับการกองซ้อน และช่วยให้คุณตัวชี้เมื่อพวกเขาสามารถดูข้อความแสดงข้อผิดพลาดที่สมบูรณ์แบบมาก ดังนั้น คุณจำเป็นต้องถามตัวคุณเอง...

ข้อผิดพลาดที่แน่นอนคืออะไร

คำถามแรกที่เราขอให้ลูกค้าเป็น "คืออะไรแน่นอนเกิดข้อผิดพลาด" ถ้าคุณมีคำอธิบายที่ชัดเจนของข้อความแสดงข้อผิดพลาด thrown โดย Framework Microsoft .NET คุณสามารถข้ามส่วนนี้ ถ้า masks ข้อความแสดงข้อผิดพลาดเกิดขึ้นจริงโปรแกรมประยุกต์ของคุณ และให้ข้อความข้อผิดพลาดที่เป็นมิตรแทน เช่น "ข้อผิดพลาดที่ไม่คาดคิดเกิดขึ้น โปรดติดต่อผู้ดูแลเว็บไซต์สำหรับรายละเอียด ไม่ปริมาณการใช้ทุกคน ต่อไปนี้เป็นขั้นตอนบางอย่างซึ่งจะช่วยให้คุณได้รับข้อความของข้อผิดพลาดเกิดขึ้นจริง
  • ค้นหา และเปิดแฟ้ม Web.config ในไดเรกตอรีของโปรแกรมประยุกต์ และเปลี่ยนแปลงcustomErrorsไปยังโหมด = "ปิด" บันทึกแฟ้ม และการทบทวนเกิดปัญหา
  • ดังกล่าวยังอาจไม่สามารถดูข้อความแสดงข้อผิดพลาดเกิดขึ้นจริงหลังจากการตามขั้นตอนข้างต้นได้เนื่องจากการจัดการเหตุการณ์ที่กำหนดเอง/ผิดพลาดที่ทำ โดยผู้พัฒนาโปรแกรมประยุกต์ที่ คุณสามารถลองค้นหานี้Application_Errorเหตุการณ์ในแฟ้ม Global.asax และข้อคิดเห็นออกจากรหัสที่ใช้ในServer.Transfer("Errors.aspx")ฟังก์ชันเพื่อไปยังเพจในข้อผิดพลาดที่กำหนดเอง
/Global.asax 
void Application_Error(object sender, EventArgs e) 
 {
  // Code that runs when an unhandled error occurs
  //Server.Transfer("Errors.aspx"); 

  } 
หลังจากที่คุณได้รับข้อความแสดงข้อผิดพลาดเกิดขึ้นจริง อ่านเพื่อตรวจสอบถ้าข้อผิดพลาดเกิดขึ้น โดยไม่มีสิทธิ์ทรัพยากรท้องถิ่น หรือทรัพยากรที่โปรแกรมประยุกต์ ASP.NET พยายามเข้าถึงระยะไกล

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

ปัญหาเกิดขึ้นเนื่องจากไม่พบสิทธิ์ทรัพยากรท้องถิ่นที่โปรแกรมประยุกต์ ASP.NET พยายามเข้าถึง

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

แสดงผลลัพธ์การ FileMon ตัวอย่างด้านล่าง
10381 1:01:11 PM w3wp.exe:2320 OPEN
				C:\winnt\microsoft.net\framework\v1.1.4322\Temporary ASP.NET
				Files\sessiontest\8832e585\275ec327\global.asax.xml ACCESS DENIED NT
				AUTHORITY\NETWORK SERVICE
ตามที่คุณสามารถดูได้จากผลลัพธ์จะถูกกรอง เรามี narrowed ลงสาเหตุของปัญหา FileMon แสดงว่า บัญชี NT AUTHORITY\NETWORK SERVICE ไม่มีสิทธิ์ของ NTFS ในโฟลเดอร์แฟ้ม ASP.NET C:\Winnt\Microsoft.net\Framework\v1.1.4322\Temporary ซึ่งควรจะตรงและไปข้างหน้าในการแก้ไขสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ FileMon แก้ไข ASP.NET คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
890960การแก้ไขปัญหาเบื้องต้น ASP.NET ที่ใช้ FileMon
เคล็ดลับขั้นตอนที่ดีจะเป็นการ เปลี่ยนบัญชีผู้ใช้ขั้นตอนของ ASP.NET แอคเคาท์ผู้ดูแลระบบเมื่อต้องการดูหากจะแก้ปัญหา ใน IIS 5.x คุณจะเปลี่ยนการชื่อผู้ใช้เมื่อต้องการ "ระบบ" ในส่วนของรูปแบบจำลองกระบวนการของไฟล์ machine.config และ ใน IIS 6.0 คุณจะเปลี่ยน identity AppPool IIS เป็น "ระบบเฉพาะที่" เพื่อดูว่าการทำงานของแอพลิเคชัน

หมายเหตุ:ซึ่งจะไม่มีใช้ เป็นการแก้ไข แต่ เป็นขั้นตอนการแก้ไขปัญหาเท่านั้น

คนส่วนใหญ่จะแตก Framework Microsoft .NET การติดตั้งใหม่ หรือแม้แต่ไปที่ขอบเขตของระบบปฏิบัติการติดตั้งใหม่ ไม่ใช่ขั้นตอนการแก้ไขปัญหาแนะนำ และไม่รับประกันว่า ปัญหานี้จะไม่ reoccur ฉันจะให้ตัวอย่างเช่นหนึ่ง มักจะยากในการแยก และแก้ไขปัญหาที่เป็นระยะ ๆ ได้ ในสถานการณ์นี้ โปรแกรมประยุกต์ของลูกค้าจะผลกับสองสามชั่วโมง และจากนั้น ทั้งหมดของหมาย sudden ดังกล่าวจะไม่ มีข้อผิดพลาดด้านล่าง ลูกค้าที่มีอยู่แล้วพยายามติดตั้ง.NET Framework เช่นเดียวกับระบบปฏิบัติการ นี่ seemed เพื่อแก้ไขปัญหาสำหรับวันที่สองหรือสาม แต่แล้ว นั้น reappeared

ยุบรูปภาพนี้ขยายรูปภาพนี้
ข้อผิดพลาดของเซิร์ฟเวอร์ใน ' / MyApp ' แอพลิเคชัน


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

คีย์ต่อไปนี้คือการ ดูกขนาดเกิดข้อผิดพลาด ข้อความข้อผิดพลาดอย่างชัดเจนว่า "ไม่สามารถเปิดแฟ้มสำหรับการเขียน และข้อผิดไม่แบบปกติเข้า พลาด ดังนั้นฉันกำลัง thinking ว่า เป็นบางอื่น ๆ กระบวนการที่จะเก็บล็อกแฟ้มหรือโฟลเดอร์ และไม่อนุญาตให้ใช้ ASP.NET เขียนนั้น มันทำให้ควรเริ่มระบบใหม่ถูก killing กระบวนการอื่น และโปรแกรมประยุกต์ ASP.NET เริ่มทำงานอีกครั้งจนกว่ากระบวนการ rogue ล็อกไฟล์อีกครั้ง สิ่งที่ลอจิคัลจะทำจะเป็นการ ปิดใช้งานโปรแกรมป้องกันไวรัสทั้งหมด สปายแวร์ของบริษัทอื่น หรือแฟ้มอื่น ๆ ที่ตรวจสอบซอฟต์แวร์ที่ทำงานบนเซิร์ฟเวอร์ ฉันไม่ต้องการชี้ออกซอฟต์แวร์อื่น ๆ ที่ระบุ แต่ โดยทั่วไป การทราบว่าซอฟต์แวร์ป้องกันไวรัสเพื่อทำให้เกิดการจำนวนมาก grief สำหรับโปรแกรมประยุกต์ของ IIS และ ASP.NET ปัญหารู้จักอื่นที่เกิดจากซอฟต์แวร์ป้องกันไวรัสจะสูญหายเนื่องจากการ AppDomain recycles เมื่อ touched ช่องเก็บโฟลเดอร์หรือแฟ้ม.config ของเซสชัน

เคล็ดลับวิธีที่ง่ายที่สุดในการปิดใช้งานการบริการของบริษัทอื่นคือการ:
  1. คลิกเริ่มการทำงานคลิกเรียกใช้จากนั้น พิมพ์msconfig.
  2. เลือกบริการตรวจสอบซ่อนบริการทั้งหมดของ Microsoft.
  3. คลิกปิดการใช้งานทั้งหมดเมื่อต้องการหยุดบริการของบริษัทอื่น
  4. คลิกเริ่มการทำงานคลิกเรียกใช้จากนั้น พิมพ์iisresetเพื่อโหลด CLR หมายเข้าไปในกระบวนการของผู้ปฏิบัติงาน
การตรวจสอบโปรแกรมประยุกต์ของคุณเพื่อดูว่า ปัญหา reoccurs หากคุณเรียกใช้โปรแกรมป้องกันไวรัสหลายโปรแกรม ใช้วิธีการผิดทดลอง และพลาดเพื่อดูว่าโปรแกรมใดเป็นสาเหตุของปัญหา

หมายเหตุ:ถ้ามีข้อผิดพลาดที่เหมือนกัน reproducible 100 เปอร์เซ็นต์ของเวลา ซอฟต์แวร์ป้องกันไวรัสอาจเป็นสาเหตุไม่ ไม่สามารถเป็นสาเหตุอื่น ๆ สำหรับข้อผิดพลาดนี้ ให้ลองสร้างแอพพลิเคชันทดสอบ ASP.NET ที่อย่างง่ายเพื่อแยกว่ามีข้อผิดพลาดที่เหมือนกันเกิดขึ้นสำหรับเพ Test.aspx ถ้าออกแล้ว ตรวจสอบว่า ที่จำเป็นต้องใช้การเข้าถึงตัวควบคุมรายการ (acl) เป็นทั้งหมดในสถานที่ ASP.NET

ดู ASP.NET จำเป็นในการควบคุมการเข้าถึง (acl) ที่รายการ:http://msdn2.microsoft.com/en-us/library/kwzs111e.aspx

เคล็ดลับโฟลเดอร์ %SystemRoot%\Assembly ถูกแคชแอสเซมบลีส่วนกลาง คุณไม่สามารถใช้ Windows Explorer เพื่อแก้ไข acl สำหรับโฟลเดอร์นี้โดยตรง แทน ใช้พร้อมท์รับคำสั่ง และเรียกใช้คำสั่งต่อไปนี้:
cacls %windir%\assembly /e /t /p domain\useraccount:r
ถอนการลงอีกวิธีหนึ่งคือ ก่อนที่จะใช้ Windows Explorer ทะเบียน Shfusion.dll ด้วยคำสั่งต่อไปนี้เพื่อให้สิทธิ์ผ่าน GUI:
C:\WINDOWS\Microsoft.NET\Framework\VersionNumber>regsvr32–u shfusion.dll
หลังจากการตั้งค่าสิทธิ์ ด้วย Windows Explorer, Shfusion.dll ที่ลงทะเบียนใหม่ ด้วยคำสั่งต่อไปนี้:
C:\WINDOWS\Microsoft.NET\Framework\VersionNumber>regsvr32 shfusion.dll

ปัญหาเกิดขึ้นเนื่องจากไม่มีสิทธิ์ในทรัพยากรที่โปรแกรมประยุกต์ ASP.NET พยายามเข้าถึงระยะไกล

เมื่อโปรแกรมประยุกต์ ASP.NET กำลังเข้าถึงระยะไกลทรัพยากรเช่น Microsoft SQL Server หรือใช้ร่วมกันแบบแผนการตั้งชื่อสากล (UNC) คุณเป็นสิ่งต่าง ๆ ที่สามารถดำเนินการไม่ถูกต้อง ยัง สิ่งต่าง ๆ มากมายอาจจะไม่ถูกต้องเซ็ตอัพบนทรัพยากรระยะไกล คุณต้องการแก้ไขปัญหาดังกล่าวเพื่อที่จะได้รับการทำงานของทรัพยากรสำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
891031ปัญหาด้านความปลอดภัยที่พบโดยทั่วไปเมื่อคุณเข้าถึงระยะไกลทรัพยากรจากโปรแกรมประยุกต์ ASP.NET
ขั้นตอนแรกของคุณจะเห็นว่า คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่านทาง Windows Explorer
  1. บนเซิร์ฟเวอร์ระยะไกล การสร้างโฟลเดอร์เรียกว่าการทดสอบ ในการการใช้ร่วมกันและการรักษาความปลอดภัยแท็บของโฟลเดอร์ทดสอบ เพิ่มโดเมน/บัญชีของคุณ และบัญชีผู้ใช้ขั้นตอนที่ถูกใช้ โดยโปรแกรมประยุกต์ ASP.NET และกำหนดค่าเหล่านี้ให้กลายเป็นค่า Full Control ทั้งสอง

    หมายเหตุ:โปรดดู891031สำหรับเทคนิคต่าง ๆ หรือการแก้ไขปัญหาในการเข้าถึงระยะไกลทรัพยากรจาก ASP.NET
  2. บนเซิร์ฟเวอร์ IIS ล็อก ด้วยโดเมน/บัญชีของคุณ คลิกเริ่มการทำงานคลิกเรียกใช้จากนั้น ให้พิมพ์พาธ UNC ที่ใช้ร่วมกันของเซิร์ฟเวอร์ระยะไกล:
    \\RemoteServerName\Test
    ถ้าคุณไม่สามารถเข้าถึงโฟลเดอร์นี้ ติดต่อเครือข่ายของคุณแล้วผู้ดูแลเมื่อต้องการแก้ไขปัญหานี้ แล้วเท่านั้น สามารถโปรแกรมประยุกต์ ASP.NET เข้าใช้ร่วมกัน
  3. สร้างแฟ้มที่เรียกว่า CreateUNCFile.aspx ด้วยรหัสด้านล่าง และบันทึกแฟ้มในไดเรกทอรีของแอพลิเคชัน
    <%@ Page Language="vb" %>
    <%@ Import Namespace="System.IO" %>
    <html>
      <head>
      <title>Writing to a Text File</title>
    <script runat="server">
        Sub WriteToFile(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dim fp As StreamWriter
                fp = File.CreateText("\\<RemoteServerName>\Test\" & "test.txt")
                fp.WriteLine(txtMyFile.Text)
                lblStatus.Text = "The File Successfully created! Your ASP.NET process is able to access this remote share"
                fp.Close()
        End Sub
    </script>
    
    </head>
    <body style="font: 10pt verdana">
                <h3 align="center">Creating a Text File in ASP.NET</h3>
        <form id="Form1" method="post" runat="server">
                            Type your text:
                            <asp:TextBox ID="txtMyFile" TextMode="MultiLine" Rows="10" Columns="60" Runat="server" /><br>
                            <asp:button ID="btnSubmit" Text="Create File" OnClick="WriteToFile" Runat="server" />
                            <asp:Label ID="lblStatus" Font-Bold="True" ForeColor="#ff0000" Runat="server" />
        </form>
    </body>
    </html> 
    
  4. ตรวจสอบให้แน่ใจว่า คุณปรับเปลี่ยน<remoteservername></remoteservername>ในบรรทัดของรหัสต่อไปนี้
    fp = File.CreateText("\\<RemoteServerName>\Test\" &	"test.txt")
    ดังนั้นจะสะท้อนถึงข้อความแสดงชื่อของเซิร์ฟเวอร์ระยะไกล
  5. เปิด Windows Internet Explorer และเรียกดู http://IISServerName/AppName/CreateUNCFile.aspx จากไคลเอ็นต์คอมพิวเตอร์อื่นที่ไม่ใช่เซิร์ฟเวอร์ IIS
  6. รับรองความถูกถ้ามีสร้างแฟ้ม Test.txt เสร็จเรียบร้อยแล้ว จากนั้นโปรแกรมประยุกต์ ASP.NET สามารถต้องทรัพยากรระยะไกล
  7. ถ้าการสร้างแฟ้มไม่จากเบราว์เซอร์ไคลเอ็นต์ของ Internet Explorer แต่การทำงานได้ถ้าคุณเรียกดูไปยังหน้าเดียวกันจากเซิร์ฟเวอร์ IIS เอง จากนั้นเป็นแนวโน้มว่า คุณกำลังเรียกใช้ในสถานการณ์ที่ "ฮ็อพคู่" ถ้าคุณกำลังใช้ Web Parts สร้างกำหนดเองเพื่อเข้าถึงระยะไกลทรัพยากรที่จำเป็นต้องมีการรับรองความถูกต้องของผู้ใช้และการอนุญาต คุณอาจจะรันเป็นปัญหา "ฮ็อพคู่" In order to access your remote resource, you may need to supply the end user's credentials to the resource so that the output from the resource is limited to the data that the end user has permission to access.
The above steps assume that you have NTLM Authentication turned on in IIS. Basic Authentication does not use Kerberos.สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
907272การรับรองความถูกต้องของ kerberos และการแก้ไขปัญหาเกี่ยวกับการมอบหมาย
326985วิธีการแก้ไขปัญหาที่เกี่ยวข้องกับ Kerberos ใน IIS
For more information on IIS authentication methods, see the following Microsoft Developer Network (MSDN) Web site:
http://msdn2.microsoft.com/en-us/library/aa292114(VS.71).aspx


เคล็ดลับIf you can connect to the remote UNC share but you can not connect to the remote server that is running SQL Server from the ASP.NET application, then you might have to check or set the Service Principal Names (SPNs) for SQL Server. Try enabling only Basic Authentication for your application in IIS and see if you are able to connect to the remote server that is running SQL Server.สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
319723วิธีการใช้การรับรองความถูกต้องของ Kerberos ใน SQL Server
316989Error message when you create a trusted data connection from ASP.NET to SQL Server: "Login failed for user: 'AccountName'"
เคล็ดลับIt's never recommended to use mapped drives to connect to a remote resource because drive mappings are an extension of thenet usecommand and are created on a per-user basis. The preferred method of accessing content for the Web server that exists on a remote computer is to use shares that follow the UNC.สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
257174Using mapped drives with IIS

Code Access Security (CAS) related issue

Error messages in ASP.NET are detailed and, more often than not, tell you exactly what the problem is. In some cases, FileMon or RegMon may not capture anything useful. Let's take a look at one such scenario.

สถานการณ์สมมติ

While trying to browse an ASP.NET application, it fails with a generic error such as the following infamous error:
ยุบรูปภาพนี้ขยายรูปภาพนี้
Server Application
				Unavailable
The event log shows:
ชนิดเหตุการณ์: ข้อผิดพลาด
Event Source: ASP.NET 1.1.4322.0
ประเภทเหตุการณ์: ไม่มี
Event ID: 1088
Date: 10/11/2006
Time: 10:54:04 PM
ผู้ใช้: n/a
Computer: ComputerName
คำอธิบาย::
Failed to execute request because the App-Domain could not be created. Error: 0x8013150a
When an ASP.NET application domain is created, ASP.NET reads the value specified for the level attribute of the trust configuration element, creates an instance of theAspNetHostingPermissionclass with the specifiedระดับ:attribute, and then adds the class to the permission set for the application domain. You will see the above error if the trust levels are incorrectly configured or modified. For more information, see "ASP.NET Trust Levels and Policy Files" at the following MSDN Web site:
http://msdn2.microsoft.com/en-us/library/wyts434y.aspx
To resolve this issue, you can try thisเคล็ดลับin the "Issue occurs because of missing permissions on a local resource that the ASP.NET application tries to access" section, but do not get disheartened if the application does not work with an Administrator or SYSTEM account. You need to check to see if the issue can be caused by Code Access Security. This can easily be done by turning off Code Access Security using the Caspol.exe utility.
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322>caspol -s off
Microsoft (R) .NET Framework CasPol 1.1.4322.573
ลิขสิทธิ์ (C) Microsoft Corporation 1998-2002 สงวนลิขสิทธิ์

ความสำเร็จ

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 >
เมื่อคุณเรียกใช้–s caspol ปิดการตั้งค่า IIS และพยายามเรียกดูแอพลิเคชัน ถ้ามีการทำงานขั้นตอนนี้ คุณแล้วต้องการตรวจสอบสิทธิ์ในการตั้งค่าสำหรับกลุ่มของรหัส คุณสามารถเข้าถึงกลุ่มรหัสใน Framework Microsoft .NETVersionNumberเครื่องมือตั้งค่าคอนฟิกที่พบในเครื่องมือการจัดการ

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

หมายเหตุ:เมื่อต้องการเข้าถึงMy_Computer_Zoneรหัสกลุ่ม ทำตามขั้นตอนเหล่านี้:
  1. ใน'แผงควบคุม' คลิกสองครั้งเครื่องมือการดูแลระบบ.
  2. คลิกสองครั้งกรอบการทำงานของ microsoft .NETVersionNumberconfiguration.
  3. คลิกสองครั้งนโยบายความปลอดภัยรันไทม์.
  4. คลิกสองครั้งMachine :.
  5. คลิกสองครั้งรหัสกลุ่ม.
  6. คลิกสองครั้งAll_Code.
  7. คลิกสองครั้งMy_Computer_Zone.
เคล็ดลับไม่ลืมที่จะเรียกใช้–s caspol บนเมื่อต้องการเปิด CAS หนึ่งครั้งคุณได้แก้ไขปัญหา

ดูข้อมูลเพิ่มเติม ASP.NET การเข้าถึงรหัสการรักษาความปลอดภัย:http://msdn2.microsoft.com/en-us/library/87x8e4d1.aspx

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

ข้อผิดพลาดที่เกี่ยวข้องกับ iis

แฟ้มบันทึกของ IIS จะเป็นประโยชน์อย่างยิ่งในกรณีของข้อผิดพลาดในการรับรองความถูกต้องที่เกี่ยวกับ IIS สถานการณ์ที่พบโดยทั่วไปคือเมื่อผู้ใช้จะโดยทั่วไปแล้วดูที่ตัวเลือกต่อไปนี้:
ยุบรูปภาพนี้ขยายรูปภาพนี้
คุณไม่ได้รับอนุญาตในการดูเพจนี้
สิ่งที่คุณจำเป็นต้องใช้ในการค้นหาเป็นรหัสสถานะสถานะและย่อยสำหรับข้อผิดพลาดเฉพาะนี้
22:47:28 2006-10-12 w3svc1 65.52.18.230 รับ /MyAPP/login.aspx - 80MyDomain\UserID_91 65.52.22.58 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+SV1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+InfoPath.1) 401 3 5
เราเห็นแบบ 401 ด้วย sub-status 3 ซึ่งบ่งชี้ว่า "การ Unauthorized เนื่องจากการ ACL ในทรัพยากร"

ซึ่งบ่งชี้ว่า ระบบไฟล์ NTFS ไม่มีสิทธิ์ในแฟ้มหรือโฟลเดอร์ ข้อผิดพลาดนี้อาจเกิดขึ้นแม้ว่าสิทธิ์ที่ถูกต้องสำหรับแฟ้มที่คุณพยายามเข้าถึง แต่ค่าเริ่มต้นและสิทธิ์ของผู้ใช้อาจหายไปในโฟลเดอร์ SYSTEM และ IIS อื่น ๆ ตัวอย่างเช่น คุณอาจพบข้อผิดพลาดนี้ถ้าบัญชี IUSR_ComputerName ไม่มีการเข้าถึงไดเรกทอรี C:\Winnt\System32\Inetsrvสำหรับข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานะของ IIS คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
318380คำอธิบายของรหัสสถานะของ Microsoft ข้อมูลบริการทางอินเทอร์เน็ต (IIS) 5.0 และ 6.0
812614ค่าเริ่มต้นและสิทธิ์ของผู้ใช้สำหรับ IIS 6.0
271071วิธีการตั้งค่าต้องเป็น NTFS สิทธิ์และสิทธิ์ของผู้ใช้สำหรับการ IIS 5.0 เว็บเซิร์ฟเวอร์
เคล็ดลับคลิกเริ่มการทำงานคลิกเรียกใช้จากนั้น พิมพ์logfilesเมื่อต้องการเปิดโฟลเดอร์ ที่ประกอบด้วยแฟ้มบันทึกของ IIS อีกวิธีหนึ่งคือ ในหน้าคุณสมบัติสำหรับเว็บไซต์ของคุณใน IIS คลิกการWebSiteNameแท็บ และภายใต้รูปแบบแฟ้มบันทึกที่ใช้งานอยู่คลิกคุณสมบัติเมื่อต้องการดูไดเรกทอรีของแฟ้มบันทึกและชื่อ

สิ่งอื่นที่สนใจต่อไปนี้มีรหัสสถานะ 5 คุณสามารถใช้ได้helpmsg สุทธิคำสั่งที่จะสามารถรับข้อมูลเพิ่มเติมบนรหัสสถานะนี้:
C:\Documents และ Settings\User >สุทธิ helpmsg 5
ปฏิเสธการเข้าใช้งาน
ลองอื่นทั่วไปรหัสสถานะ รหัส 50:
C:\Documents และ Settings\User >สุทธิ helpmsg 50
การร้องขอไม่ได้รับการสนับสนุน
เคล็ดลับเมื่อใดก็ตามคุณได้รับทั่วไปที่อื่น infamous "เซิร์ฟเวอร์ภายในบริษัท 500 ข้อผิดพลาด" ข้อความ จาก นั้นเป็นควรปิดการใช้งานของข้อผิดพลาด HTTP จำได้ง่าย เพื่อให้คุณได้รับข้อความแสดงข้อผิดพลาดคำอธิบายโดยละเอียด อย่าลืมการค้นหาในเหตุการณ์ ตัวแสดง ตามที่อาจประกอบด้วยข้อมูลเพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการยกเลิกข้อความแสดงข้อผิดพลาด HTTP ที่จำง่าย คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
294807ปิด Internet Explorer 5.x และ 6.x "แสดงเป็นมิตร HTTP ข้อผิดพลาด" คุณลักษณะด้านเซิร์ฟเวอร์
ความคิดจะใช้บันทึกข้อมูลทั้งหมดพร้อมใช้งานเพื่อดูรายละเอียดที่สูงสุดในปัญหาในมือ

ทรัพยากร

สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
306590ภาพรวมการรักษาความปลอดภัยของ asp.net
317012ตัวประมวลผลและการร้องขอใน ASP.NET
วิธีการสร้างบัญชีบริการสำหรับโปรแกรมประยุกต์ ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998297.aspx

เมทริกซ์รหัสประจำตัวของ asp.net
http://msdn2.microsoft.com/en-us/library/aa302377.aspx

คอลัมน์เสียงสนับสนุน ASP.NET ก่อนหน้านี้
http://support.microsoft.com/aspnetpsvc
ฉัน hope ว่า เทคนิคเหล่านี้ปกติจะเป็นประโยชน์ในการช่วยให้คุณแก้ไขการรักษาความปลอดภัยและการอนุญาตปัญหาที่เกี่ยวข้อง อย่าลืม คอลัมน์สนับสนุนเสียงจะใช้สำหรับคุณ รู้สึกว่าได้ตลอดเวลา ว่างเพื่อใช้การถามอย่างได้แบบฟอร์มการส่งแนวคิดในหัวข้อที่คุณต้องการให้อยู่ ในคอลัมน์ในอนาคต หรือ ในฐานความรู้

คุณสมบัติ

หมายเลขบทความ (Article ID): 910449 - รีวิวครั้งสุดท้าย: 19 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft ASP.NET 2.0
  • Microsoft ASP.NET 1.1
Keywords: 
kbhowto kbasp kbmt KB910449 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:910449

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

 

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