gpt4 book ai didi

.net - ASP.Net 4中的ThreadAbortException泄漏文件句柄?

转载 作者:行者123 更新时间:2023-12-01 15:21:38 25 4
gpt4 key购买 nike

有时,如果我们的文件服务器运行缓慢,并且页面未在其超时之前完成,则ASP.Net将使用ThreadAbortException命中它。如果在Win32Native.CreateFile内部发生这种情况,它将使文件句柄处于锁定状态,直到我们执行iisreset。

这是.NET中的缺陷吗?对于这种错误的想法,我们有什么办法解决呢?例如,将超时时间提高到一个巨大的数字...我认为ThreadAbort.Reset不会有所帮助,因为损坏已经完成,而且我什至没有返回文件句柄从FileStream自行关闭。

在Microsoft.Win32.Win32Native.CreateFile(String lpFileName,Int32 dwDesiredAccess,FileShare dwShareMode,SECURITY_ATTRIBUTES securityAttrs,FileMode dwCreationDisposition,Int32 dwFlagsAndAttributes,IntPtr hTemplateFile)

在Microsoft.Win32.Win32Native.SafeCreateFile(String lpFileName,Int32 dwDesiredAccess,FileShare dwShareMode,SECURITY_ATTRIBUTES securityAttrs,FileMode dwCreationDisposition,Int32 dwFlagsAndAttributes,IntPtr hTemplateFile)

在System.IO.FileStream.Init(字符串路径,FileMode模式,FileAccess访问,Int32权限, bool useRights,FileShare共享,Int32 bufferSize,FileOptions选项,SECURITY_ATTRIBUTES secAttrs,字符串msgPath, bool bFromProxy, bool useLongPath)处

在System.IO.FileStream..ctor处(字符串路径,FileMode模式,FileAccess访问,FileShare共享,Int32 bufferSize,FileOptions选项,String msgPath, bool bFromProxy)

在System.IO.FileStream..ctor处(字符串路径,FileMode模式)

最佳答案

您似乎也向Microsoft Connect提交了此问题,并且未在此处更新其答案:

http://connect.microsoft.com/VisualStudio/feedback/details/739044/threadabortexception-in-asp-net-4-during-new-filestream-leaking-file-handle

这是微软的回应:

Performing long running operations in synchronous requests in ASP.NET is not recommended. If you're hitting the timeout period, you can choose to simply increase the configured request timeout or change to using asynchronous requests, which don't timeout during the execution of the asynchronous operations, and hence don't throw thread abort exceptions.



我猜想线程中止(或任何异步异常)最终将能够并且将做到这一点。

但是看来该框架在打开文件时会在内部使用 SafeFileHandle,因此当垃圾回收器闲逛时,应该由垃圾收集器将其关闭。

关于.net - ASP.Net 4中的ThreadAbortException泄漏文件句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com