1

我最近将我所有的会话检查集成到 global.asax 中,它工作正常,但是当我的页面调用我的 filehandler.ashx 以获取图像时,我已经将它放在那里,我不断收到会话的空引用错误(但只有当它这么称呼)。

如果我在它周围放置一个 try/catch,图像将加载,但显然这不是一个好的解决方案。

 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
4

1 回答 1

4

ASHX 要求显式继承会话状态:

public class SomeCustomService : IHttpHandler, IRequiresSessionState
{
    // stuff
}
于 2013-03-21T15:39:26.033 回答