在我的工作中,我们有一个标准的超时脚本,等待15分钟,并提示用户询问他们是否要继续会话。在IIS中是否存在创建虚拟端点,可以更改脚本以调用以刷新会话。对于我们所有的应用程序,我们使用相同的脚本,因此我希望它是每个应用程序的相同端点。我倾向于创建一个HTTP处理程序来执行此操作,但我不确定这是否足够。我想模仿这里采取的方法。
Keeping ASP.NET Session Open / Alive
public class SessionKeepAliveHttpHandler : IHttpHandler, IRequiresSessionState
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
//Give it some long name it's no one is likely to have used
context.Session["Global_Session_KeepAlive"] = System.DateTime.Now;
}
并像这样注册处理程序
<httpHandlers>
<add verb="POST" path="keep-alive.html" validate="false" type="SessionKeepAliveHttpHandler"/>
</httpHandlers>
我也不是100%确定在哪里注册处理程序,在线阅读here看起来我把它放在Machine.config中。但是我不确定,因为我没有直接访问ISS服务器。
默认情况下,我们的会话超时脚本设置为只发出“keep-alive.html”
的发布请求