一般处理文件.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(只读权限,可以并发)。

上一篇:python中关于类隐藏属性的三种处理方法


下一篇:js控制输入框只能输入数字不能输入其他字符