การตัดสินค้าจากคลังที่สองเกิดขึ้นเมื่อคุณปรับใช้โปรแกรมประยุกต์ที่ใช้ ASP.NET 2.0 บนเซิร์ฟเวอร์ที่กำลังเรียกใช้ IIS 7.0 หรือ IIS 7.5 ในโหมดแบบครบวงจร


อาการ


คุณปรับใช้โปรแกรมประยุกต์เว็บที่ใช้ Microsoft ASP.NET 2.0 ไปยังเว็บไซต์ที่โฮสต์บน Office SharePoint server คุณมี Internet Information Services (IIS) 7.0 หรือทำงานในโหมดแบบครบวงจรบนเซิร์ฟเวอร์ IIS 7.5 ในสถานการณ์นี้ คุณพบปัญหาต่อไปนี้

ปัญหาที่ 1

การจัดวาง Web parts บางอย่างเชื่อถือได้บางส่วนบนไซต์ SharePoint Web parts เหล่านี้มีสิทธิ์เพิ่มเติมมากกว่าที่พวกเขาควรได้ ปัญหานี้อาจสร้างความเสี่ยงด้านความปลอดภัยบนไซต์ SharePoint ตัวอย่างเช่น Web parts เหล่านี้อาจสร้างฐานข้อมูลการร้องขอหรือการร้องขอ HTTP โดยไม่คาดคิด ลักษณะการทำงานนี้สร้างความเสี่ยงด้านความปลอดภัย

หมายเหตุ Web parts ที่เชื่อถือได้บางส่วนมี Web part ที่ถูกปรับใช้กับไดเรกทอรีของช่องเก็บของโปรแกรมประยุกต์เว็บ

ปัญหาที่ 2

ตัวนับประสิทธิภาพที่ "การร้องขอถูกจัดคิว" ในวัตถุประสิทธิภาพการทำงานของ ASP.NET ทำงานอย่างไม่ถูกต้อง เมื่อคุณเรียกใช้ไซต์ SharePoint ปัญหานี้อาจลดประสิทธิภาพการทำงานของไซต์ SharePoint

ประสิทธิภาพ "การร้องขอถูกจัดคิว" แย้งทำหน้าที่ได้อย่างถูกต้องเมื่อมีเงื่อนไขใด ๆ ต่อไปนี้เป็นจริง:
  • แอพลิเคชันที่เรียกใช้ในโหมดคลาสสิกของ IIS
  • คำขอลงพูลเธรดรันไทม์ (CLR) ภาษาทั่วไป ค่าของตัวนับประสิทธิภาพการทำงานเพิ่มขึ้น
  • เมื่อร้องขอออกจากพูลเธรด CLR ค่าของตัวนับประสิทธิภาพการทำงานลดลง

สาเหตุ


ปัญหาที่ 1

ปัญหานี้เกิดขึ้นเนื่องจาก มีข้อผิดพลาดในคอมโพเนนต์การรับรองความถูกต้องของ ASP.NET 2.0 ข้อผิดพลาดทำให้ Web parts เชื่อถือได้บางส่วนเพื่อเลียนแบบบัญชีผู้ใช้พูลโปรแกรมประยุกต์ ดังนั้น Web parts มีสิทธิ์เต็มที่ในการเข้าถึงไซต์ SharePoint

ปัญหาที่ 2

ปัญหานี้เกิดขึ้นเนื่องจากตัวนับประสิทธิภาพการทำงาน "ASP.NET\Request ถูกจัดคิว" เฉพาะรายงานค่าเมื่อมีการจัดคิวคำขอในคิว ASP.NET จะไม่นับเป็นสิ่งร้องขอที่กำลังรอการอนุพูลเธรด CLR

การแก้ปัญหา


ปัญหาที่ 1

โปรแกรมแก้ไขด่วนนี้ทำให้แอพลิเคชันใหม่การตั้งค่าที่พร้อมใช้งานใน ASP.NET 2.0 การตั้งค่าแอพลิเคชันใหม่เป็น aspnet:AllowAnonymousImpersonation คุณสามารถเปิดใช้งานการตั้งค่านี้ โดยการเพิ่มส่วนต่อไปนี้ลงในแฟ้ม Web.config:
    <appSettings>        <add key="aspnet:AllowAnonymousImpersonation" value="true" />
</appSettings>

เมื่อต้องการเปิดใช้งานการตั้งค่านี้ คุณต้องมี IIS 7 หรือ 7.5 IIS ที่ทำงานในโหมดแบบครบวงจร เมื่อเปิดใช้งานการตั้งค่านี้ แอพลิเคชันรันภายใต้บริบทความปลอดภัยของข้อมูลเฉพาะตัว IUSR

ปัญหาที่ 2

ถ้าคุณตรวจสอบตัวนับประสิทธิภาพการทำงาน "ASP.NET\Request ถูกจัดคิว" หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ คุณเห็นค่าเพิ่มสำหรับแอพลิเคชันเดียวกันภายใต้การโหลดเดียวกัน เป็นเช่นนี้ เพราะตัวนับประสิทธิภาพการทำงาน "ASP.NET\Request ถูกจัดคิว" นับคำขอที่ถูกจัดคิวในคิว ASP.NET และการร้องขอที่กำลังรอการอนุพูลเธรด CLR ทั้ง

ข้อมูลโปรแกรมแก้ไขด่วน

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

เมื่อต้องการแก้ไขปัญหานี้ทันที ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สำหรับรายการทั้งหมดของหมายเลขโทรศัพท์บริการการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่ายในการสนับสนุน โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:หมายเหตุ ในกรณีพิเศษ ค่าบริการที่เรียกเก็บตามปกติเมื่อโทรติดต่อฝ่ายสนับสนุนอาจจะยกเลิกได้หาก Microsoft Support Professional ตัดสินว่าโปรแกรมปรับปรุงที่เฉพาะเจาะจงจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง

ข้อกำหนดเบื้องต้น

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมีการ Microsoft .NET Framework 3.5 Service Pack 1 (SP1) ติดตั้งไว้บนคอมพิวเตอร์ที่กำลังเรียกใช้ระบบปฏิบัติการต่อไปนี้อย่างใดอย่างหนึ่ง:
  • Windows Vista Service Pack 2 (SP2)
  • Windows Server 2008 SP2
  • Windows 7
  • Windows Server 2008 R2

ข้อกำหนดการรีสตาร์ท

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

ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน


โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนโปรแกรมแก้ไขด่วนอื่น ๆ

ข้อมูลแฟ้ม

เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขด่วนนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่านี้) ซึ่งแสดงรายการไว้ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ระบบจะแปลงข้อมูลนี้เป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ในแผงควบคุม
สำหรับทั้งหมดได้รับการสนับสนุนใช้ x86 รุ่น ของ Windows Vista SP2 และ Windows Server 2008 SP2
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
Aspnet_wp.exe2.0.50727.443530,54403-Mar-201012:08x86
Webengine.dll2.0.50727.4435435,53603-Mar-201012:08x86
System.web.dll2.0.50727.44355,242,88003-Mar-201012:08x86
สำหรับทั้งหมดได้รับการสนับสนุนใช้ x64 รุ่น ของ Windows Vista SP2 และ Windows Server 2008 SP2
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
Aspnet_wp.exe2.0.50727.443542,32003-Mar-201012:08x64
Webengine.dll2.0.50727.4435744,78403-Mar-201012:08x64
System.web.dll2.0.50727.44355,255,16803-Mar-201012:08x64
สำหรับทั้งหมดได้รับการสนับสนุน IA 64-รุ่นที่ใช้ Windows Server 2008 SP2
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
Aspnet_wp.exe2.0.50727.443582,25603-Mar-201012:09IA-64
Webengine.dll2.0.50727.44351,229,64803-Mar-201012:09IA-64
System.web.dll2.0.50727.44354,775,93603-Mar-201012:09IA-64
สำหรับ Windows 7 รุ่นที่ใช้ x86 ทั้งหมดที่สนับสนุน
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
Aspnet_wp.exe2.0.50727.500730,54403-Mar-201023:27x86
Webengine.dll2.0.50727.5007436,04803-Mar-201023:27x86
System.web.dll2.0.50727.50075,246,97603-Mar-201023:27x86
สำหรับ Windows 7 และ Windows Server 2008 R2 รุ่นที่ใช้ x64 ทั้งหมดที่สนับสนุน
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
Aspnet_wp.exe2.0.50727.500742,32003-Mar-201023:26x64
Webengine.dll2.0.50727.5007745,29603-Mar-201023:26x64
System.web.dll2.0.50727.50075,255,16803-Mar-201023:26x64
สำหรับ Windows Server 2008 R2 รุ่นที่ใช้ IA 64 ทั้งหมดที่สนับสนุน
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
Aspnet_wp.exe2.0.50727.500782,25603-Mar-201023:25IA-64
Webengine.dll2.0.50727.50071,231,18403-Mar-201023:25IA-64
System.web.dll2.0.50727.50074,775,93603-Mar-201023:25IA-64

วิธีแก้ปัญหา


เมื่อต้องหลีกเลี่ยงปัญหา 1 ใช้หนึ่งในวิธีต่อไปนี้

วิธีที่ 1

สร้างบัญชีผู้ใช้ที่มีชื่อผู้ใช้และรหัสผ่านเป็นรหัสประจำตัว IUSR เดียวกัน แล้ว พิมพ์ชื่อและรหัสผ่านลงในส่วนมีเอกลักษณ์ และเพิ่มส่วนลงในแฟ้ม Web.config ระดับโปรแกรมประยุกต์ ตัวอย่างเช่น คุณเพิ่มส่วนต่อไปนี้ลงในแฟ้ม Web.config ระดับโปรแกรมประยุกต์:
<identity impersonate="true" username="username" password=" password" />
นอกจากนี้ คุณต้องเพิ่มการตั้งค่าคอนฟิกต่อไปนี้ลงในแฟ้ม Web.config ระดับโปรแกรมประยุกต์เพื่อระงับข้อผิดพลาดการตั้งค่าคอนฟิก IIS ที่เกิดขึ้นเมื่อคุณเพิ่มส่วนรหัสประจำตัว:
<system.webServer><validation validateIntegratedModeConfiguration="false" />
</system.webServer>
วิธีที่ 2

เปิดใช้งานการรับรองความถูกต้องแบบไม่ระบุชื่อและ ASP.NET ฟอร์มโดยใช้รับรองความถูกต้องในโหมดคลาสสิกของ IIS ใช้การตั้งค่าคอนฟิกต่อไปนี้แล้ว เพื่อเลียนแบบโทเค็นของผู้ใช้ที่ไม่ระบุชื่อ:
<identity impersonate=”true”/>
ในสถานการณ์นี้ โทเค็นผู้ใช้แบบไม่ระบุชื่อเป็นโทเค็น IUSR

สถานะ


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

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


สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกที่คุณสามารถใช้เพื่อปรับใช้ SharePoint Web parts แวะไป Microsoft TechNet เว็บไซต์ต่อไปนี้:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเคาน์เตอร์วัดประสิทธิภาพสำหรับ ASP.NET แวะไปเว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับศัพท์เฉพาะในการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

824684คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft