【发布时间】:2021-09-30 16:10:46
【问题描述】:
在我们的应用程序中,我们必须访问业务类中的会话对象。我们正在使用 HttpContext.Current.Session 来获取会话值。在某些情况下,它返回值,但主要是抛出空引用异常(对象引用未设置为对象的实例)。我们有以下代码 试试
如果 HttpContext.Current.Session("Username") IsNot Nothing 那么 '要执行的语句 万一 抓住前任作为例外 '登录到数据库 结束尝试
这里 HttpContext.Current.Session("Username") 主要是抛出异常“对象引用未设置为对象的实例” 在调试时我们发现 HttpContext.Current 本身什么都不是。
谢谢。对此的任何帮助将不胜感激。
【问题讨论】:
-
代码是否确实在对您的 Web 应用程序的请求上下文中执行,而不是在应用程序启动事件中执行,在这种情况下将没有 HttpContext
-
“在某些情况下它返回值但大多数情况下不返回值”这一事实表明@Nick Champion 走在了正确的轨道上。在 Web 应用程序之外访问 httpcontext 是一种不好的做法,因为它会阻止类库在 Web 应用程序之外使用。
-
嗨,我能够获取 HttpContext.Current.Session("Username") 的值,除此之外,所有值都因为对象引用未设置为对象实例而出现异常