gpt4 book ai didi

ASP.NET 在 TransmitFile 中出现异常后删除文件

转载 作者:行者123 更新时间:2023-12-04 06:16:24 26 4
gpt4 key购买 nike

我有以下代码:

try
{
context.Response.TransmitFile(savedFileName);
}
catch (Exception ex)
{
ExceptionUtility.LogException(new Exception("Exception while transmit zip [AttachmentsSecurityHandler.cs]: " + ex.Message), false);
}
finally
{
try
{
Thread.Sleep(500);
File.Delete(savedFileName);
}
catch (Exception ex)
{
ExceptionUtility.LogException(new Exception("Unable to delete temp zip file [AttachmentsSecurityHandler.cs]: " + ex.Message), false);
}
}

一切正常,只有当用户取消下载时,我才会得到:
Exception while transmit zip [AttachmentsSecurityHandler.cs]: The remote host closed the connection. The error code is 0x800703E3.
Unable to delete temp zip file [AttachmentsSecurityHandler.cs]: The process cannot access the file 'D:\Hosting\***\html\attachments\tempCompressed\b9b5c47e-86f9-4610-9293-3b92dbaee222' because it is being used by another process.

删除孤立文件的唯一方法是尝试删除旧(例如小时)文件吗?系统会锁定多长时间(GoDaddy 共享主机)?谢谢你。

最佳答案

1)我认为您应该将 context.Response.Flush() 放在 TransmitFile() 之后,因为您想确保在继续删除文件之前已将文件流式传输到客户端。

2) TransferFile() 也在流式传输文件而不将其缓冲在内存中。这将在文件使用时锁定文件。您可能希望将其加载到内存中并改用 Response.OutputStream。

关于ASP.NET 在 TransmitFile 中出现异常后删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188257/

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