哪里最好删除ASP.net应用程序中的临时文件?

时间:2012-11-14 12:00:21

标签: c# asp.net delete-file temp sessionend

我在我的asp.net应用程序中创建了几个临时文件,我需要在用户完成后删除它们。

我试过

 void Session_End(object sender, EventArgs e) 
    {

        System.IO.File.Delete(@"C:\Temp\test.doc");        
    }

但它不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您必须在此文件夹中向iisuser授予权限

答案 1 :(得分:2)

1)在web.config上设置模式变量

<sessionState 
        mode="InProc"
        stateConnectionString="tcpip=127.0.0.1:42424"
        sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
        cookieless="false" 
        timeout="20" 
/>

2)启动Session变量。 3)在Session_End上放置一些代码,然后检查用户在浏览器上单击[X]时是否执行该代码。

取自以下

http://www.tek-tips.com/viewthread.cfm?qid=742667

希望这有帮助

答案 2 :(得分:2)

确定用户何时离开Web应用程序的方式没有良好的可靠性(100%的工作时间)。虽然常规方法在所有方法都按预期运行时都会起作用,但是可能会发生孤立数据的边缘情况,例如

用户的计算机死机或崩溃...... 服务器冻结或崩溃...... 用户的互联网连接失败了...... 服务器的互联网连接失败......

你明白了。出于这个原因,我个人更喜欢在内存中进行所有处理,而不是将临时文件写入Web服务器的硬盘。这样.Net垃圾收集器将处理清理任何孤立数据。

但是,如果您正在处理足够大量的数据以使其在内存中保留不可行的选项,请设置Windows服务或计划任务,以便在经过足够的时间后执行清理以确保文件过时。继续在运行时尝试清理,但备用方法应该允许您处理随时间变成孤立的任何数据。