2011-03-28 51 views
0

我有一个奇怪的问题: 我有一个网站有一个管理系统。asp.net session dissappers

在系统中有一种方法来编辑我的输入。为了使这更容易,我可以搜索他们的ID来找到它们。

问题是,当页面回发会议变量我举行“登录”的价值,变成什么都没有..我被踢出。为什么会发生?如果有其他说明,会话变量应该至少保持20分钟?

编辑:它适用于同事,但不适合我。此外,它只对某些输入做它。

EDIT2:原来我得到一个异常。但它不说什么,只说“财产评估失败”。我得到它的代码行:

Response.Redirect("./admin.aspx?search=" + u.FirstOrDefault.ProductID.ToString, False) 

而且sience它通过这一说法,它不是因为它是如果遇到异常不设置到对象

If u.Any Then 
+0

你能发表一些你的代码吗? – hallie 2011-03-28 09:28:49

+0

你可以发布一些代码,以便于调查问题吗? – 2011-03-28 09:29:48

+0

我可以发布代码,但是什么代码是相关的? sience我不会删除/ abadon会话中的任何地方的会话.. – Jimmy 2011-03-28 09:45:41

回答

2

的一个实例的objectreference您的会话可能会重新启动。 创建一个Global.asax并设置断点到的Application_Error,Session_End中和在session_start事件,根据您的更新追查问题

编辑: 确保u.Count == 1,因为FirstOrDefault将抛出例外,如果计数> 1

看一看这个链接http://support.microsoft.com/kb/312629/EN-US/这将覆盖原来的问题 http://forums.asp.net/t/1296202.aspx/1

+0

这可能是这样,生病检查它 – Jimmy 2011-03-28 09:47:39

+0

没有得到任何错误:/ – Jimmy 2011-03-28 09:56:50

+0

@Jimmy:但Session_Start的断点被击中,对吧?如果不是这样,你应该检查你是否用String.Empty或类似的东西覆盖你的“登录”值 – citronas 2011-03-28 10:17:24

0

如果你有Web园启用(应用程序池多个工作进程),这可以解释苏行为 - 在那里。

要么有一个池的工作进程,要么切换到Database driven Session

+0

我不这么认为,如果它不标准。 – Jimmy 2011-03-28 09:57:21

+0

@Jimmy只要检查IIS配置,它应该在应用程序池属性下。 – 2011-03-28 11:21:32

0

您是否启用了cookies?如果没有,这将解释这种行为。特别是当你声明它对同事有用时,你可以推断这是一个客户端问题。

+0

是的,cookies已启用。 – Jimmy 2011-03-28 10:15:49