我在asp.net 2005中创建了角色身份验证示例。我在default.aspx页面上创建了登录面板,登录后工作正常。我使用下面的代码登录
FormsAuthentication.RedirectFromLoginPage(txtUName.Text, true, urlpath);
FormsAuthentication.SetAuthCookie(txtUName.Text, true);
Response.Redirect(urlpath, false);
我在登录后显示的单个母版页中使用了所有必需的页面链接。 我使用主页中的代码进行“注销”,如下面点击链接按钮
try
{
Response.Redirect("~/Logout.aspx" );
}
catch (Exception ee)
{
return;
}
现在当我从母版页退出时,我收到了类似的错误
unable to evaluate expression because the code is optimized or native frame is on top of call stack
我已经护目镜但没有得到解决方案。我无法找出背后的原因。 请提供适当的解决方案。 感谢
答案 0 :(得分:2)
http://support.microsoft.com/kb/312629/en-us
要解决此问题,请使用以下方法之一: •对于Response.End,调用HttpContext.Current.ApplicationInstance.CompleteRequest方法而不是Response.End以绕过代码执行到Application_EndRequest事件。
•对于Response.Redirect,使用一个重载,Response.Redirect(String url,bool endResponse),它为endResponse参数传递false以禁止对Response.End的内部调用。例如: Response.Redirect(“nextpage.aspx”,false);
如果使用此解决方法,则会执行Response.Redirect之后的代码。 •对于Server.Transfer,请改用Server.Execute方法。