Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET C#会话变量丢失_C#_Asp.net_Session - Fatal编程技术网

ASP.NET C#会话变量丢失

ASP.NET C#会话变量丢失,c#,asp.net,session,C#,Asp.net,Session,我有一个解决方案,其中包括2个项目和2个类文件,通过引用调用。在我的一个项目中,我在Session_Start块的Global.asax中有一些代码,它从数据库加载一些变量,并将它们设置为Session变量。如果我在Global.asax中设置了一个断点,我就可以验证变量是否设置正确 当我引用任何代码隐藏模块中的类或项目中的类中的会话变量时,它们就在那里。但是如果我在引用调用的一个类(本质上是一个共享类)中引用它们,那么会话变量都是空的 我使用HttpContext.Current.Sessio

我有一个解决方案,其中包括2个项目和2个类文件,通过引用调用。在我的一个项目中,我在Session_Start块的Global.asax中有一些代码,它从数据库加载一些变量,并将它们设置为Session变量。如果我在Global.asax中设置了一个断点,我就可以验证变量是否设置正确

当我引用任何代码隐藏模块中的类或项目中的类中的会话变量时,它们就在那里。但是如果我在引用调用的一个类(本质上是一个共享类)中引用它们,那么会话变量都是空的

我使用HttpContext.Current.Session[“varName”]访问类中的变量,这是标准的


<> P>是否有其他的事情需要我考虑访问这些会话变量?这可能是名称空间问题吗

我以前也遇到过同样的问题,我一直在丢失my session变量(尽管与您的上下文不同)。我发现这篇文章对我的问题很有帮助:和。希望它也能帮助你。干杯

您是否在代码中的任何地方调用Session.放弃()?我在我的Web应用程序开始时这样做是为了确保我从一个“新鲜”的会话开始。事实证明,即使在“放弃”之后存储的任何会话变量都会在回发时被删除(即使SessionID是通过其他方式强制保持不变的,例如使用Server.Transfer(Url,true)而不是Response.Redirect)

i、 e.我可以跟踪我的应用程序,观察所有会话变量是否正确设置,然后在调用任何事件处理程序(任何带有AutoPostBack=“True”的事件,如UpdatePanel上的复选框或按钮)时,BAM,我有相同的SessionID,但会话变量为零

删除对Session.放弃()的先发制人调用立即解决了我的问题


Jeff

检查
应用程序池
高级设置中的
最大工作进程
属性设置为1 窗户

如果无意中设置的值大于1,则应用程序池将是一个
Web Garden
,因此您无法找到
会话
应用程序
变量,即使它们仍然存在于其中一个变量中


从“关注点分离”的角度来看,“其他”项目似乎不应该直接了解web环境。您可以将会话中需要的任何值传递到“其他项目”中吗?请尝试:System.Web.HttpContext.Current.session[“varName”]。此外,请注意您尝试读取会话的ASP.NET页面生命周期的哪个阶段-例如,您尝试读取会话时会话是否可能尚未加载?Moe-我正在根据访问系统所使用的URL自定义登录屏幕上的徽标。当我单步执行时,我在global.asax中设置了一个断点,它首先停止并设置了变量。然后,下一个断点是当我的登录模块尝试从数据库加载徽标时。它从“other”共享类调用一个过程来处理映像加载,并且数据库名称为null。我想我可以尝试从它工作的模块中获取会话变量,并将其传递给加载图像的类中的方法。。。我试试看。谢谢安妮,但那不是我的问题。我正在使用SQLServer模式。我可以在我的主要项目中使用会话。当我试图访问外部项目中的会话变量(在同一个解决方案中)时,我遇到了一个问题。