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

时间:2021-03-11 19:06:02

在给其他网站提供接口的时候用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(只读权限,可以并发)。