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;
憋屈了两天, 释放了, 标记一下.
复制代码 代码如下:
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;
憋屈了两天, 释放了, 标记一下.