偶尔地,如果我们的文件服务器速度很慢,并且页面没有按其超时完成,ASP.Net会以ThreadAbortException命中它。如果这发生在Win32Native.CreateFile内部,它将锁定文件句柄直到我们执行iisreset。ASP.Net中的ThreadAbortException 4泄露文件句柄?
这是.NET中的缺陷吗?有没有什么我们可以做的关于短暂的不良想法,如提高超时到一些巨大的数字......我不认为ThreadAbort.Reset会有帮助,因为损坏已经完成,我甚至没有文件句柄返回从FileStream自己关闭它。
在Microsoft.Win32.Win32Native.CreateFile(字符串lpFileName的对象,的Int32 dwDesiredAccess,文件共享dwShareMode,SECURITY_ATTRIBUTES securityAttrs,的FileMode CREATE_NEW标志,的Int32 dwFlagsAndAttributes,IntPtr的hTemplateFile)
在Microsoft.Win32.Win32Native.SafeCreateFile(字串lpFileName的对象,的Int32 dwDesiredAccess,文件共享dwShareMode,SECURITY_ATTRIBUTES securityAttrs,的FileMode CREATE_NEW标志,的Int32 dwFlagsAndAttributes,IntPtr的hTemplateFile)
在System.IO.FileStream.Init(字符串路径,模式的FileMode,FileAccess的访问,的Int32权利,布尔useRights,FileShare共享,Int32 bufferSize,FileOptions选项,SECURITY_ATTRIBUTES secAttrs,字符串msgPath,布尔bFromProxy,布尔useLongPath)
at System.IO.FileStream..ctor(String path,FileMode mode,FileAccess access,FileShare share, INT32缓冲区大小,FileOptions选项,字符串MSGPATH,布尔bFromProxy)
在System.IO.FileStream..ctor(字符串路径的FileMode模式)
是的,它发生在内部框架代码以及缓存的文件依赖关系。 – ss2k 2014-02-13 17:08:55