服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - ASP.NET教程 - asp.net Application_AcquireRequestState事件,导致Ajax客户端不能加载

asp.net Application_AcquireRequestState事件,导致Ajax客户端不能加载

2019-07-15 09:56服务器之家 ASP.NET教程

项目中使用Application_AcquireRequestState事件,来做一些用户信息的验证工作.

开发环境IIS7下一切正常,但是部署到IIS6服务器以后, 每次刷新页面总出现Ajax客户端不能加载的问题. 

复制代码代码如下:


protected void Application_AcquireRequestState(object sender, EventArgs e) 

string oldToken = Session["token"].ToString(); 


MSDN上说: Application_AcquireRequestState, 当ASP.NET获取当前请求所关联的当前状态(如Session)时执行. 
但是, 实际情况是, 我们使用AJAX控件时, 一个页面会多次触发这个事件, 并且Session会出现为NULL的情况. 
原因是一些脚本和图片是通过webresource.axd handler解析的, 但一个页面使用多个脚本和图片时, 页面就会多次请求, 
也就多次触发这个事件了. 
所以, 在事件中访问Session, 需要先判断Session是否为NULL. 
或者, 我们先判断请求的类型. 

复制代码代码如下:


if (Request.Url.AbsoluteUri.Contains(".axd") || Request.Url.AbsoluteUri.Contains(".asmx")) 
return; 


憋屈了两天, 释放了, 标记一下.

延伸 · 阅读

精彩推荐