嗨,我不是很熟悉如何asp.net各届会议的工作,但一些阅读后,我发现,它可以帮助我解决,我有不费力的问题。的Session_OnEnd行为
我的问题是有关地方允许用户上传的服务器上的一些文件,但实际上不是它们保存在数据库中,直到他按下按钮后的情况。
如果他上传的文件,并关闭浏览器的文件保留在文件系统中并没有知道什么文件都保存在这里的方式。
为了解决这个问题,我决定将文件的详细信息存储在会话中,但保存在文件系统而不是实际的文件。
当页面先装入清理文件系统是基于存储在所述会话中的数据执行。现在
剩下的唯一的事情是能够处理用户关闭浏览器和会话在此期间到期的情况。
经过一番研究,我发现,当即使在浏览器关闭的Session_OnEnd方法是符文,所以我说我的代码在这里会话过期:
public void Session_OnEnd()
{
var session = Session[Constants.FILE_SHARE_DOCUMENT];
if (session != null)
{
var documents = (List<Document>)session;
foreach (var document in documents)
{
string filePath = Path.Combine(Constants.SERVER_PATH, document.StorageFileName);
File.Delete(filePath);
}
}
}
我已在会议结束也设置为1分钟,它似乎适用于我尝试过的所有案例。
谁能确认这是否是解决我的问题的一种可靠的方法?
有什么我失踪?
我设置它只是用于测试目的一分钟在应用程序的会话设置为60分钟 – aleczandru