我最近将所有会话检查都集成到了global.asax中,这很好用,但是由于我在页面调用filehandler.ashx获取图像时将其放入其中,所以我一直在获取该会话的空引用错误(但仅当它出现时)调用)。
如果我试一试,它会加载图像,但是显然这不是一个好的解决方案。
void Application_PostAcquireRequestState(object sender, EventArgs e)
{
try
{
HttpContext context = HttpContext.Current;
if (context.Session["tid"] == null) //Null Reference here
{
理想情况下,我正在寻找在回发或首次加载时触发且不会与文件处理程序发生冲突的事件。我想我是否总是可以像以前一样将其放在master_page init中(这是不好的做法吗?),因为这似乎很好。我只是认为global.asax将是一个更整洁的解决方案。
对下一步尝试有什么想法?
到目前为止我尝试过的活动
Application_AcquireRequestState
Application_PostAcquireRequestState
Application_PreRequestHandlerExecute
Application_PreSendRequestContent
最佳答案
ASHX要求显式继承会话状态:
public class SomeCustomService : IHttpHandler, IRequiresSessionState
{
// stuff
}