ASHX中引用Session 出现“呈现未将对象引用设置到实例上”

在ASHX一般处理程序文件中如需调用Session必须继承System.Web.SessionState.IRequiresSessionState接口,才能实现Session读写!

System.Web.SessionState的接口介绍:

  1. IReadOnlySessionState 指定目标 HTTP 处理程序只需要具有对会话状态值的读访问权限。这是一个标记接口,没有任何方法。
  2. IRequiresSessionState 指定目标 HTTP 处理程序需要对会话状态值具有读写访问权。这是一个标记接口,没有任何方法。

自定义 HTTP 处理程序,从IHttpHandler继承,在写System.Web.HttpContext.Current.Session["Name"]的时候 没有问题,但想将这个Session写到某个变量时,发现Session的值为NULL;MSDN中的解决方法为:“在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权”,在自定义的类上加上该接口后,Session值获取正常。

解决办法:

1.引用using System.Web.SessionState;

2.在aspx类实现IReadOnlySessionState接口。如:public class {ClassName}: IHttpHandler, IReadOnlySessionState{…}

原因:

“IReadOnlySessionState”,指定目标HTTP处理惩罚法度只须要具有对话接见状况值的读接见权限。

实际上是ashx文件起首是实现了IHttpHandler接口。但要接见page中的session状况值时,是两个应用范畴。

微软默认状况下没有接见权限,所以ashx文件接见不了HttpContext.Current.Session,故呈现未将对象设置到实例上。

只须要在实现IReadOnlySessionState接口即可。

概括:

1.using System.Web.SessionState;

2.public class {ClassName}: IHttpHandler, IReadOnlySessionState

“IReadOnlySessionState”,指定目标HTTP处理程序只需要具有对话访问状态值的读访问权限。

时间: 2024-10-24 02:40:59

ASHX中引用Session 出现“呈现未将对象引用设置到实例上”的相关文章

ashx中应用HttpContext.Current.Session ,呈现未将对象引用设置到实例上

在ASHX一般处理程序文件中如需调用Session必须继承System.Web.SessionState.IRequiresSessionState接口,才能实现Session读写! System.Web.SessionState的接口介绍: IReadOnlySessionState 指定目标 HTTP 处理程序只需要具有对会话状态值的读访问权限.这是一个标记接口,没有任何方法. IRequiresSessionState 指定目标 HTTP 处理程序需要对会话状态值具有读写访问权.这是一个标

Spring.Net 未将对象引用设置到对象的实例

"/"应用程序中的服务器错误. 未将对象引用设置到对象的实例. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例. 源错误: 行 16: public ActionResult Index() 行 17: { 行 18: Model.Config config = ConfigService.GetC

ashx文件中使用session提示“未将对象引用设置到对象的实例”

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Web.SessionState;namespace friends {    /// <summary>    /// Handler 的摘要说明    /// </summary>    public class Handler : IHttpHandler

2014-08-26 解决HttpContext.Current.Session在ashx文件中出现“未将对象引用设置到对象的实例”的问题

今天是在吾索实习的第35天. 最近在使用HttpContext.Current.Session来获取Session["..."]的值时,常常会弹出错误——“未将对象引用设置到对象的实例”. 所以,在网上搜索了一番,发现如下解决方法: 引用:using System.Web.SessionState; 让要用到HttpContext.Current.Session的继承IReadOnlySessionState.如:public class {ClassName}: IHttpHandl

ASP.NET ASHX中获得Session的方法

1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash

一般处理程序中使用Session出现未将对象引用设置到对象的实例

遇到问题:未将对象引用设置到对象的实例 那就在你的一般处理程序中加入红色背景的代码吧 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Web.SessionState; //引用命名空间 namespace gl.webweb.gl_web.ashx { //实现接口 public class login : I

HttpContext.Current.Session[strName]未将对象引用设置到对象的实例

项目开发是在4.5.1上,不知道为啥客户提供的服务器上安装的是4.5,差别不大也没去升级,然后部署MVC的时候web.config报错 <system.web> <compilation debug="true" targetFramework="4.5.1"/> <httpRuntime targetFramework="4.5.1"/> </system.web> 然后也没在意就把这段给删掉了,

空引用,未将对象引用设置到对象的实例

作为小白的我,目前没有写过惊天地泣鬼神的代码,每天都是从数据库,到模型,再到页面,再到数据库. 整个过程变量,对象,传递来来回回. 那么问题来了,当我满怀期待的按下F5(在Visual Studio),程序抛了一个“未将对象引用设置到对象的实例”的异常给我,顿时满脑子的想法就是 what are you 弄啥咧?? 一定不是我代码的问题.一定不是. 但是现实总是残忍的,还是面对现实吧,情况只有两种: 1  声明的变量没有正确赋值. 2  数据库中存在异常数据,导致当代码中没有进行 NULL 值判

session未将对象引用设置到对象的实例

使用Session的方法应该说很简单,在一个页面赋值,另一个页面调用就可以了. 自己在编制程序时犯了一个大错误,即语句的顺序搞倒了,如: Session["UserName"] = nameBox.Text;    Response.Redirect("shuru.aspx"); 先赋值再转页,而我刚开始是反过来写了,那 么Session["UserName"] 的值始终为空了. 查了好多资料,终于把问题给解决了~~~吼吼...拿来跟大家分享^_