日期:2014-05-17  浏览次数:20442 次

如何在ashx中获取aspx后台文件中设定的Seesion值
需要实现一个简单的上传文件进度条功能,在ASPX提交的时候AJAX每隔定时去访问ASHX文件获取当前进度信息,在ASPX后台文件中设置了总进度数及当前进度数,使用Session保存,但在AJAX去请求ashx文件时,ashx文件中无法获取到总进度数及当前进度数的session值,已经继承了IRequiresSessionState.谁以前碰到过,求解决.

------解决方案--------------------
据我所知,你是取不到session的值的,session在当前线程未结束前所有的操作其他UI现场看不到的
------解决方案--------------------
IRequiresSessionState 这个会阻塞其它Session请求.....

我这边就碰到了打开aspx页面,该页面堵塞了,然后定时轮询的继承自IReadOnlySessionState的ashx请求也被阻塞了
------解决方案--------------------
fileupload上传显示进度 

------解决方案--------------------
<%@ WebHandler Language="C#" Class="VerificationHandler" %>

using System;
using System.Web;
using System.Web.SessionState;

public class VerificationHandler : IHttpHandler, IRequiresSessionState
{
    
    public void ProcessRequest (HttpContext context) {
        string Verification = context.Request["Verification"].ToLower();
        if (Verification != context.Session["validate_code"].ToString().ToLower())  //判断用户填写的验证码和生成的验证码是否一致,当不一致时触发的事件
        {
            context.Response.Write("false");
        }
        else
        {
            context.Response.Write("true");
        }
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

楼主请给分