ในบางครั้งหากไฟล์เซิร์ฟเวอร์ของเราช้าและเพจไม่เสร็จภายในเวลาที่กำหนด ASP.Net จะโจมตีด้วย ThreadAbortException หากสิ่งนั้นเกิดขึ้นภายใน Win32Native.CreateFile ไฟล์จะถูกล็อคตัวจัดการไฟล์ไว้จนกว่าเราจะทำการรีเซ็ต
นี่เป็นข้อบกพร่องใน .NET หรือไม่ มีอะไรที่เราสามารถทำได้เกี่ยวกับการขาดแนวคิดที่ไม่ดี เช่น การเพิ่มการหมดเวลาเป็นจำนวนมหาศาล... ฉันไม่คิดว่า ThreadAbort.Reset จะช่วยได้ เนื่องจากความเสียหายได้เสร็จสิ้นแล้ว และฉันไม่ได้รับตัวจัดการไฟล์คืนด้วยซ้ำ จาก FileStream เพื่อปิดเอง
ที่ Microsoft.Win32.Win32Native.CreateFile (สตริง lpFileName, Int32 dwDesiredAccess, FileShare dwShareMode, SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition, Int32 dwFlagsAndAttributes, IntPtr hTemplateFile)
ที่ Microsoft.Win32.Win32Native.SafeCreateFile (สตริง lpFileName, Int32 dwDesiredAccess, FileShare dwShareMode, SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition, Int32 dwFlagsAndAttributes, IntPtr hTemplateFile)
ที่ System.IO.FileStream.Init (เส้นทางสตริง, โหมด FileMode, การเข้าถึง FileAccess, สิทธิ์ Int32, สิทธิ์การใช้งานบูลีน, การแชร์ FileShare, ขนาดบัฟเฟอร์ Int32, ตัวเลือก FileOptions, SECURITY_ATTRIBUTES secAttrs, สตริง msgPath, บูลีน bFromProxy, บูลีน useLongPath)
ที่ System.IO.FileStream..ctor (เส้นทางสตริง, โหมด FileMode, การเข้าถึง FileAccess, การแชร์ FileShare, Int32 bufferSize, ตัวเลือก FileOptions, สตริง msgPath, บูลีน bFromProxy)
ที่ System.IO.FileStream..ctor (เส้นทางสตริง โหมด FileMode)