一般处理文件.ashx中使用文件session遇到的问题

在给其他网站提供接口的时候用ashx做的,在文件调用cs中的方法,方法中的Session报错:System.NullReferenceException: 未将对象引用设置到对象的实例。

/// <summary>
        /// 拉取AccessToken,微信每天公共2000次AccessToken的获取,所以需要缓存AccessToken
        /// </summary>
        /// <returns>用户凭证:AccessToken</returns>
        public string getTokenSession(string appid, string appsecret)
        {
            string TokenSession = "";

            if (System.Web.HttpContext.Current.Session[weixin_Keys.AccessToken] == null)
            {
                TokenSession = addTokenSession(string appid, string appsecret);
            }
            else
            {
                TokenSession = System.Web.HttpContext.Current.Session[weixin_Keys.AccessToken].ToString();
            }
            
            return TokenSession;
        }

解决的方法是在一般处理程序继承session的读写接口IRequiresSessionState或者IReadOnlySessionState
如:public class API: IHttpHandler, System.Web.SessionState.IRequiresSessionState

原因 IHttpHandler接口的实现是没有Session,必须使用接口IRequiresSessionState(读写权限,不能并发)或者IReadOnlySessionState(只读权限,可以并发)。

原文地址:https://www.cnblogs.com/net-xiejun/p/4427755.html