相关疑难解决方法(0)

ashx文件中的Asp.Net Session为空

我试图访问Asp.Net ashx处理程序中的Session变量,如下所示.

public void ProcessRequest (HttpContext context) {
        context.Session["VariableName"] = Id;
    }
Run Code Online (Sandbox Code Playgroud)

但是context.Session在上面的方法中总是的.如何访问ashx文件中的Session对象?

asp.net session httphandler

31
推荐指数
1
解决办法
2万
查看次数

HttpContext.Current.Session为null

我在类库中有一个带有自定义Cache对象的WebSite.所有项目都运行.NET 3.5.我想将此类转换为使用会话状态而不是缓存,以便在我的应用程序回收时保留状态服务器中的状态.但是,当我从Global.asax文件访问方法时,此代码抛出"HttpContext.Current.Session为null"的异常.我这样叫这个班:

Customer customer = CustomerCache.Instance.GetCustomer(authTicket.UserData);
Run Code Online (Sandbox Code Playgroud)

为什么对象总是为空?

public class CustomerCache: System.Web.SessionState.IRequiresSessionState
{
    private static CustomerCache m_instance;

    private static Cache m_cache = HttpContext.Current.Cache;

    private CustomerCache()
    {
    }

    public static CustomerCache Instance
    {
        get
        {
            if ( m_instance == null )
                m_instance = new CustomerCache();

            return m_instance;
        }
    }

    public void AddCustomer( string key, Customer customer )
    {
        HttpContext.Current.Session[key] = customer;

        m_cache.Insert( key, customer, null, Cache.NoAbsoluteExpiration, new TimeSpan( 0, 20, 0 ), CacheItemPriority.NotRemovable, null );
    }

    public Customer GetCustomer( string key ) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

12
推荐指数
1
解决办法
3万
查看次数

捕获网页的截图并获取图像(ASP.NET)

我正在对图像执行复杂的html操作(拖放),当我完成后,我需要截取页面的截图并将拍摄的图像保存在服务器上(虚拟目录).

所以我需要的是

Image img = CaptureURL("www.a.com/b.aspx");
Run Code Online (Sandbox Code Playgroud)

有谁知道一个可以帮我这个的图书馆吗?

谢谢

asp.net image-capture

6
推荐指数
0
解决办法
2万
查看次数

ASP.NET Web窗体是否阻止双击提交?

我正在开发一个ASP.NET 4.0 Web Forms项目,经过大约5年的休息,我对提交行为感到困惑.

在按钮的单击事件中,我睡眠线程,以便我可以多次单击提交按钮.

据我所知,ASP.NET阻止了多次调用click事件.这是真的?

顺便说一句:我已经关闭了这个测试的javascript.

asp.net webforms form-submit double-submit-prevention

5
推荐指数
1
解决办法
3601
查看次数

HttpContext.Current.Session null项

我存储在HttpContext.Current.Session当前用户中,SiteUser是单音类,它呈现当前活动的siteuser,当他记录我在控制器中创建新的SiteUser()并在构造函数中将他添加到会话中:

public static SiteUser Create()
{
    HttpContext.Current.Session[sessionKey] = new SiteUser();

    return HttpContext.Current.Session[sessionKey] as SiteUser;
}
Run Code Online (Sandbox Code Playgroud)

然后,对于服务器服务的每个请求,我检查用户是否在会话中可用:

public static SiteUser Current
{
    get
    {
        if (HttpContext.Current.Session == null || HttpContext.Current.Session[sessionKey] == null)
        {
            throw new SiteUserAutorizationExeption();
        }

        return HttpContext.Current.Session[sessionKey] as SiteUser;
    }
}
Run Code Online (Sandbox Code Playgroud)

否则我将生成非auth用户异常并将其重定向到登录页面.但有时HttpContext.Current.Session [sessionKey]为null,但HttpContext.Current.Session不为null且FormsAuthenticationTicket可用且Expired属性也为false.有人可以帮助我,为什么HttpContext.Current.Session [sessionKey]可以为空?

UPD:webconfig会话设置:<sessionState mode="InProc" timeout="20" />

UPD:sessionKey是:public const string sessionKey = "SiteUser";

UPD2:我忘了添加,在会话中还存储了文化设置:

HttpContext.Current.Session["Culture"]
Run Code Online (Sandbox Code Playgroud)

当异常命中时,HttpContext.Current.Session [sessionKey]为null,culture-item不是

UPD3:我已下载源.NET Framework的符号表,并在更改集合项时在SessionStateItemCollection上设置断点.我解决了一些错误:1)所有的收集项都是空的 - "文化"正在设置2)它发生在会话结束事件我无法理解它是怎么回事,因为在web.config会话超时设置为20

.net asp.net asp.net-mvc-3

3
推荐指数
1
解决办法
2万
查看次数