我试图访问Asp.Net ashx处理程序中的Session变量,如下所示.
public void ProcessRequest (HttpContext context) {
context.Session["VariableName"] = Id;
}
Run Code Online (Sandbox Code Playgroud)
但是context.Session在上面的方法中总是空的.如何访问ashx文件中的Session对象?
我在类库中有一个带有自定义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) 我正在对图像执行复杂的html操作(拖放),当我完成后,我需要截取页面的截图并将拍摄的图像保存在服务器上(虚拟目录).
所以我需要的是
Image img = CaptureURL("www.a.com/b.aspx");
Run Code Online (Sandbox Code Playgroud)
有谁知道一个可以帮我这个的图书馆吗?
谢谢
我正在开发一个ASP.NET 4.0 Web Forms项目,经过大约5年的休息,我对提交行为感到困惑.
在按钮的单击事件中,我睡眠线程,以便我可以多次单击提交按钮.
据我所知,ASP.NET阻止了多次调用click事件.这是真的?
顺便说一句:我已经关闭了这个测试的javascript.
我存储在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