欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-08 21:28:22
开发环境iis7下一切正常,但是部署到iis6服务器以后, 每次刷新页面总出现ajax客户端不能加载的问题. 复制代码 代码如下: protected void appli...
开发环境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;

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