gpt4 book ai didi

asp.net - 当redirectMode = ResponseRewrite 时,为什么 HttpContext.Session 为 null

转载 作者:行者123 更新时间:2023-12-02 02:17:43 26 4
gpt4 key购买 nike

按照建议elsewhere ,我在自定义错误配置中使用redirectMode = ResponseRewrite,以便我的自定义错误页面可以访问异常信息。一段时间以来,这就像一种魅力。

在添加更多“帮助用户从错误中恢复”类型的功能时,我们需要一条先前存储在 Session 中的信息。在实现此操作时,我发现当redirectMode=ResponseRewrite时, session 的各种途径都以null结束,但当redirectMode=ResponseRedirect(或未定义)时,它们都会被填充。

有人知道为什么吗?看起来很奇怪,我们必须在拥有异常信息(ResponseRewrite)或拥有 session (ResponseRedirect)之间进行选择。

MSDN article丰富的自定义错误处理告诉我, session 仅在控制传递方法为 Server.Transfer 时才可用,这就是我假设的 ResponseRewrite 在幕后使用的方法。显然事实并非如此。

最佳答案

我还不知道问题的答案,但为了解决这个问题,我从 Web 配置中取出了 redirectMode 属性,并将自定义逻辑放入 Global.asax Application_Error 中。处理程序做我想做的事。我正在用“用户友好”消息异常替换该异常,但本质上传输逻辑是:

if(Context.IsCustomErrorEnabled)<br/>
{<br/>
Server.Transfer("~/Error.aspx");<br/>
}

然后,Error.aspx 页面包含 Page_Load 代码,用于从上下文中提取错误并显示消息。

关于asp.net - 当redirectMode = ResponseRewrite 时,为什么 HttpContext.Session 为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com