如果发生异常,ASP.Net会话丢失

时间:2014-03-18 09:55:02

标签: asp.net

我们开发了一个Web应用程序,当用户登录时,我将userID保存在session["UserID"]和每个page_load我们检查会话是否为空,如果是,我们注销并重定向到登录页面。

如果发生异常并输入catch阻止session["UserID"]为NULL并注销用户。

请帮助我知道如果发生任何异常,会话为空的原因。并注意我们在try-catch块中设置它们的所有方法和代码,并将代码写入日志文件。

2 个答案:

答案 0 :(得分:1)

我们发现问题,我们将异常记录在一个文件中(存储在bin中名为Logfile的文件夹中的文件),Server.MapPath(" Bin")\ Logfile \ Log.txt。

这会使会话丢失,因为我们将文件写入bin文件夹。

我们修改日志跟踪并将其保存在bin旁边的日志文件中而不是bin中,并且每件事情都可以正常工作。

感谢您的努力

答案 1 :(得分:0)

嗯,我想这取决于你保持会话状态的位置以及抛出的异常类型。如果会话状态保留在过程中,那么异常可能导致Web应用程序进程回收。

建议/问题

为什么使用会话状态来确定用户是否已登录?这是一个ASP.NET应用程序,对吗?假设它被浏览器消耗,对吗?你为什么不能使用cookies? Cookie比存储用户数据的会话更可靠(只要您不使用和滥用它)。为了这个目的,我建议你使用cookies而不是session。