อาการ
พิจารณาสถานการณ์สมมติต่อไปนี้ ใน Microsoft .NET Framework ๒.๐คุณสามารถใช้วิธีการBeginGetRequestStreamและวิธีEndGetRequestStreamในชั้นเรียนHttpWebRequestเพื่อทำการร้องขอ HTTP แบบซิงโครนัสให้เสร็จสมบูรณ์ ในสถานการณ์สมมตินี้เมื่อคุณพยายามเข้าถึงวัตถุสตรีมที่ถูกส่งกลับโดยวิธีการEndGetRequestStreamคุณจะได้รับข้อยกเว้นของระบบ ObjectDisposedException หมายเหตุ ปัญหานี้เกิดขึ้นถ้าคุณตั้งค่าคุณสมบัติวิธีการในการHttpWebRequestคลาสเป็นคุณสมบัติของโพรโทคอลที่จะอัปโหลดข้อมูล ตัวอย่างเช่นคุณตั้งค่าคุณสมบัติวิธีการลงรายการบัญชี
สาเหตุ
ปัญหานี้เกิดขึ้นเมื่อเว็บเซิร์ฟเวอร์ตั้งค่าใหม่หรือปิดการเชื่อมต่อหลังจากที่แอปพลิเคชันไคลเอ็นต์ส่งส่วนหัว HTTP คลาสที่HttpWebRequestจะพยายามเปิดการเชื่อมต่อไปยังเว็บเซิร์ฟเวอร์ให้เสร็จสมบูรณ์เพื่อให้การโอนเสร็จสมบูรณ์ เมื่อการโอนเสร็จเรียบร้อยแล้ววิธีการEndGetRequestStreamจะส่งกลับวัตถุสตรีมจากความพยายามในการเชื่อมต่อล้มเหลวครั้งแรกแทนที่จะเป็นวัตถุสตรีมจากความพยายามในการเชื่อมต่อที่ประสบความสำเร็จ เมื่อแอปพลิเคชันไคลเอ็นต์พยายามใช้วัตถุสตรีมที่ถูกตัดจำหน่ายนี้ ObjectDisposedException จะ thrown ข้อยกเว้นของระบบ
การแก้ไข
ข้อมูลโปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งาน อย่างไรก็ตามโปรแกรมแก้ไขด่วนนี้มีไว้เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นำโปรแกรมแก้ไขด่วนนี้ไปใช้กับระบบที่พบปัญหาที่เฉพาะเจาะจงนี้เท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ถ้าคุณไม่ได้รับอย่างจากจากปัญหานี้เราขอแนะนำให้คุณรอการอัปเดตซอฟต์แวร์ถัดไปที่มีโปรแกรมแก้ไขด่วนนี้ เมื่อต้องการดาวน์โหลดโปรแกรมแก้ไขด่วนนี้จากแกลเลอรีโค้ด MSDN แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://code.msdn.microsoft.com/KB918462หมายเหตุ แกลเลอรีโค้ด MSDN แสดงภาษาที่โปรแกรมแก้ไขด่วนพร้อมใช้งาน ถ้าคุณไม่เห็นภาษาของคุณแสดงอยู่ในรายการเนื่องจากหน้าแหล่งข้อมูลของแกลเลอรีโค้ดไม่พร้อมใช้งานสำหรับภาษานั้นหมายเหตุ ถ้าปัญหาอื่นๆเกิดขึ้นหรือจำเป็นต้องมีการแก้ไขปัญหาชั่วคราวคุณอาจต้องสร้างคำขอบริการแยกต่างหาก ค่าใช้จ่ายในการสนับสนุนปกติจะนำไปใช้กับคำถามเพิ่มเติมและปัญหาที่ไม่มีสิทธิ์การใช้งานโปรแกรมแก้ไขด่วนนี้เฉพาะ สำหรับรายการทั้งหมดของหมายเลขโทรศัพท์ของฝ่ายบริการลูกค้าของ Microsoft และการสนับสนุนหรือเมื่อต้องการสร้างคำขอบริการแยกต่างหากแวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://support.microsoft.com/contactus/?ws=support
ข้อกำหนดเบื้องต้น
คุณต้องมี๒.๐ .NET Framework ที่ติดตั้งให้ใช้โปรแกรมแก้ไขด่วนนี้
ความต้องการในการเริ่มระบบใหม่
คุณไม่จำเป็นต้องรีสตาร์ทคอมพิวเตอร์หลังจากที่คุณนำโปรแกรมแก้ไขด่วนนี้ไปใช้
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนที่ฮอตฟิกซ์อื่นๆ
ข้อมูลไฟล์
เวอร์ชันภาษาอังกฤษของ hotfix นี้มีแอตทริบิวต์ไฟล์ (หรือแอตทริบิวต์ไฟล์เวอร์ชันที่ใหม่กว่า) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันที่และเวลาสำหรับไฟล์เหล่านี้จะแสดงในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลไฟล์จะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC และเวลาท้องถิ่นให้ใช้แท็บโซนเวลาในรายการวันที่และเวลาในแผงควบคุม
ชื่อไฟล์ |
รุ่นของไฟล์ |
ขนาดไฟล์ |
วันที่ |
เวลา |
---|---|---|---|---|
System.dll |
2.0.50727.109 |
๓,๐๑๘,๗๕๒ |
01-May-2006 |
21:15 |
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคลาสHttpWebRequestแวะไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.aspxสำหรับข้อมูลเพิ่มเติมเกี่ยวกับชั้นเรียนของระบบ ObjectDisposedExceptionให้ไปที่ MSDN เว็บไซต์ต่อไปนี้:
http://msdn2.microsoft.com/en-us/library/system.objectdisposedexception.aspxหากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
824684 คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายโปรแกรมปรับปรุงซอฟต์แวร์ของ Microsoft