我在我的asp.net应用程序中创建了几个临时文件,我需要在用户完成后删除它们。
我试过
void Session_End(object sender, EventArgs e)
{
System.IO.File.Delete(@"C:\Temp\test.doc");
}
但它不起作用。
有什么想法吗?
答案 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服务或计划任务,以便在经过足够的时间后执行清理以确保文件过时。继续在运行时尝试清理,但备用方法应该允许您处理随时间变成孤立的任何数据。