我有一段代码可以在会话超时时将用户重定向到某个页面:
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
string szCookieHeader = HttpContext.Current.Request.Headers["Cookie"];
if ((null != szCookieHeader) && (szCookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
{
HttpContext.Current.Response.Redirect("SessionTimeout.aspx");
}
}
问题是IIS无法找到SessionTimeout.aspx,因为它查找的位置错误:
The file '/site/site/site/site/site/site/Site/SessionTimeout.aspx' does not exist.
随着时间的推移,随着越来越多的“/ site /”级别被添加。我可以通过创建一个“... / site / site / ...”树并在每个树中放置一个SessionTimeout.aspx来解决这个问题,但这显然不是一个真正的解决方案。
有谁知道发生了什么事?
答案 0 :(得分:6)
您是否尝试过使用〜?
HttpContext.Current.Response.Redirect("~/SessionTimeout.aspx");
将在运行时使用您网站的完整网址解决。
答案 1 :(得分:5)
您的重定向是相对于当前页面的。添加〜/到网址,让它看看网站的根目录。
您的重定向应为:
HttpContext.Current.Response.Redirect("~/SessionTimeout.aspx");