[已解决问题] HttpContext.Current 获取为 null 的
提问时间: 2008-05-03 11:06
悬赏分:10 浏览:269 次

我新建了一个类库文件,里面使用了

HttpContext context = HttpContext.Current;

来获取context。然后在一个web application里面引用了这个类库,然后我在使用session的时候就用context.Session来获取,调试的时候发现HttpContext.Current为null。这个是什么原因,怎么才能获取当前的httpcontext啊


提问者:JesseZhao - 菜鸟二级
最佳答案
写在哪里都是可以的。
HttpContext在HttpRuntime的时候就已经创建了,只不过有些内容没有初始化而已,而我们基本上用的都是Page.Context.其实Page.Context就是System.Web.HttpContext.Current。
我们在Page里面可以重写一个方法OnUnload,我们直接用Response,Request不能用,但是我们还是可以用HttpConext.Current.Response等的。
还有一点就是你放在类库或者放在哪里,都是在一次请求里面的,我们可以看看PAGE生命周期,你不可能跑到请求之外去。^_^。
如果不行的话,应该是你代码有问题,你可以贴上来看看。
2008/5/4 15:58:03 回答者:荒芜


提问者对于答案的评价:回答详细,谢谢
其它回答(2)
你的附加说明是正确的.

只有在处理Http请求的过程中,HttpContext的实例才会存在.
2个月前   回答者:deerchao - 大侠五级
可否把代码的上下文写一下?

2个月前   回答者:Anders Cui - 小虾三级
评论
2个月前   JesseZhao :
我想起来可能是因为我在获取context的时候没有在一次request的过程中吧。
把他封装成属性了,在一次非http请求中调用了一下,获取成为是空也是很有可能的,不知道是不是这个原因。
2个月前   JesseZhao :
但是我想问大家在用户登陆模块化的时候是怎么处理的,通过参数传递context,感觉也不是太现实。有没有现成好点的模式给介绍一下啊
2个月前   JesseZhao :
代码我已经修改了,把那段代码转移到了webapplication的页基类里面了,没有问题。只是在写在类库的时候才会出现位null的情况。这个让人很不爽。
想知道大家平时在处理用户验证这种系统中除了membership之外有没有其他的好的模块化解决方案,有的话可以给分享一下吗?
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除