System.NullReferenceException 检查 if != null 时
我正在使用 ASHX 处理程序,我希望处理程序检查 Session 是否 != null。
if (context.Session["Username"] != null)
我收到此错误指向这一行:
System.NullReferenceException:未将对象引用设置为对象的实例。
有什么问题吗?
I'm using an ASHX handler, i want the handler to check if Session != null.
if (context.Session["Username"] != null)
And i get this error pointing this line:
System.NullReferenceException: Object reference not set to an instance of an object.
What's the problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您的处理程序是否实现
IRequiresSessionState
< /a>?否则会话可能不可用。来自 MSDN:
Does your handler implement
IRequiresSessionState
? Otherwise Session might not be available.From MSDN:
像这样使用它。封装对象之一可能已经为空:
Use it like this. One of the encapsulating objects may be already null:
是的,我想说首先检查上下文是否不为空。
Yeah I'd say that check to see if the context is not null first.
我对 .ashx 文件也有类似的问题。解决方案是处理程序必须实现 IReadOnlySessionState(用于只读访问)或 IRequiresSessionState(用于读写访问)。例如:
这些接口不需要任何额外的代码,而是充当框架的标记。
希望这有帮助。
乔纳森
I had a similar problem with an .ashx file. The solution was that the handler has to implement IReadOnlySessionState (for read-only access) or IRequiresSessionState (for read-write access). eg:
These Interfaces do not need any additional code but act as markers for the framework.
Hope that this helps.
Jonathan