C# 页面方法上的空会话

C# 页面方法上的空会话,c#,asp.net,session,C#,Asp.net,Session,我使用的是InProc会话状态,由于一些奇怪的原因,当我使用page方法时,会话变量总是null 如果我这样做: var test = HttpContext.Current.Session["test"]; 当我在一个页面方法上运行时,它不显示任何内容,但如果我继续调试并打开另一个页面,它将显示预期的结果。我无法发布应用程序的所有代码,所以我应该从哪里开始查找 web.config文件如下所示: <sessionState mode="InProc"/> 谢谢。如果您在

我使用的是InProc会话状态,由于一些奇怪的原因,当我使用page方法时,会话变量总是null

如果我这样做:

var test = HttpContext.Current.Session["test"];
当我在一个页面方法上运行时,它不显示任何内容,但如果我继续调试并打开另一个页面,它将显示预期的结果。我无法发布应用程序的所有代码,所以我应该从哪里开始查找

web.config文件如下所示:

  <sessionState mode="InProc"/>

谢谢。

如果您在
母版中设置“test”
,则
webmethod中的“test”将为空。
webmethod
masterpage
一无所知

 [System.Web.Services.WebMethod(EnableSession=true)]
 public static string Bla(double bla)
 {
     //code here
     var test = HttpContext.Current.Session["test"];

 }

首先,我们解释一下在什么上下文中使用上述代码。这是否在某个页面的代码behinde中(我想是的)-在此之前是否将某个值设置为“test”?是否在使用该变量之前设置该变量?您是否在农场上运行该web应用程序?InProc会话状态不适用于此场景。上面的代码位于页面方法和2个不同的aspx页面代码中。该变量在母版页中设置为值“testworks”。当我调试aspx pages测试时,会保存该变量,但当我调试page方法时,该变量为null。我添加了enablesession参数,但它仍然不起作用。我很困惑;它过去是有用的。另一方面,page方法被声明为静态的。我在母版页中设置了会话,然后当我使用page方法时,它应该是可检索的;这就是问题所在。会话在aspx页面中工作,但在页面方法中不工作