【问题标题】:Unable to assign a Session variable value from within a Class file无法从类文件中分配会话变量值
【发布时间】:2015-01-03 06:11:41
【问题描述】:

我在尝试从 VB VS2012 中的类文件中分配会话值时遇到此错误。

Object reference not set to an instance of an object.

我已经尝试了下面的两行代码并得到相同的错误。

System.Web.HttpContext.Current.Session("dbTblName") = dbTblName

HttpContext.Current.Session("dbTblName") = dbTblName

dbTblName 变量填充了一个字符串值。函数类是从对 Web 服务的调用中调用的。

啊,我想我看到了,这里没有http。呸!

【问题讨论】:

  • 你从哪个班级打电话?你能包括那个吗?这是一个 ASp.NET 页面正在使用的类?这不是带外请求吗?
  • 甚至还没有调用它,它在分配时出错。它不会设置会话值。它是 Friend 函数中的公共类,在 Try Catch 块中。
  • 我猜 HttpContext.Current 为空。您必须显示更多代码来验证这一点。
  • System.Web.HttpContext.Current.Session("dbTblName") 引用对象的值为“Nothing”。对象
  • 我把它困在了手表里。这里有修复,我做错了什么?我以前从未见过这种情况。这也是通过调用 Web 服务触发的。

标签: asp.net vb.net session


【解决方案1】:

这很可能是因为在分配时您无法在此范围或上下文中访问 Session 所属的 HttpContext 对象。

为什么不在分配之前检查 HttpContext 是否可用。但是,如果您可以提供有关该课程以及您在哪里调用它的更多信息,那么可以提供更好的帮助

更新:

如果您在服务中调用它,则可能需要服务对象上的方法属性来启用会话对象,因为默认情况下不启用:

[WebMethod(EnableSession = true)]
public void CallingMethod()
{

}

【讨论】:

  • 上面更新了 cmets。
  • 数字,如果我查看其他服务,我会看到类似的设置,我前段时间编写过代码。对我来说不好,但对你来说非常棒。当我看到你的回答时,我知道这很容易并且击中了自己。我猜今天只是脑死了!!!再次感谢!!!
  • @htm11h 发生在每个人身上,很高兴我能帮上忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 2015-01-13
相关资源
最近更新 更多