【发布时间】:2012-07-07 15:26:31
【问题描述】:
我有一个 Asp.net 网络服务。它有方法M1。 M1 为每个会话创建一个文件夹。当会话过期时,我使用以下代码删除 global.asax 中的该文件夹。
void Session_End(object sender, EventArgs e)
{
try
{
System.IO.DirectoryInfo dirMyPacksFolder = new System.IO.DirectoryInfo(Utilities.getMyPacksFolder(Session));
//dirMyPacksFolder.Parent.CreateSubdirectory("ended_" + Session.SessionID);
if (dirMyPacksFolder.Exists)
{
dirMyPacksFolder.Delete(true);
}
}
catch (Exception ex)
{
Utilities.logException("", ex);
}
}
当我在浏览器中打开我的 web 服务并调用 M1 时,它运行正常,并且在我设置的超时到期时间删除文件夹。但是当我第二次提交 web 服务的“调用”按钮时(在会话超时和文件夹被删除之后),它的会话 starts(创建文件夹)和 ends(删除文件夹) 就在我设置的超时之前。
为什么会这样?
如果我为每个方法调用打开一个新窗口(新会话),一切正常。但是当我第二次单击“调用”按钮时出现问题。这类似于相同会话的缓存问题。
【问题讨论】:
标签: c# asp.net web-services timeout