- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 web.config 中的自定义错误属性来处理自定义错误
像这样:
<customErrors mode="On" defaultRedirect="~/Error.aspx" redirectMode="ResponseRewrite" />
抛出错误后,页面被重定向到错误页面,但是当我访问错误页面中的session时,它是null。
我使用 ResponseRewrite
而不是 ResponseRedirect
的原因是因为我使用 elmah 通过 Items 传递了 Exception id
。
我什至尝试创建新的空 asp.net 网站,但它仍然发生。
我见过一些类似的问题,但没有答案。
最佳答案
我重现了这个问题,但我不明白为什么会这样。在 Application_Error
处理程序中,我可以访问 Session 变量,但是当页面加载时它变为 null
。
我找到了解决方法 here这解决了问题。您需要从 web.config 中删除 redirectMode
,并在遇到错误时手动执行 Server.Transfer
。所以这是 web.config:
<customErrors mode="On" defaultRedirect="~/Error.aspx"/>
并将其添加到 Global.asax.cs
文件中:
void Application_Error(object sender, EventArgs e)
{
if(Context.IsCustomErrorEnabled)
{
Server.Transfer("~/Error.aspx");
}
}
要根据错误指定不同的错误页面,您可以像这样访问错误代码:
HttpException httpException = (HttpException) Server.GetLastError();
int httpCode = httpException.GetHttpCode();
switch (httpCode)
{
case 500: Server.Transfer("~/Pages/Error.aspx");break;
case 404: Server.Transfer("~/Pages/PageNotFound.aspx");break;
default: Server.Transfer("~/Pages/Error.aspx");break;
}
关于c# - ResponseRewrite 后 session 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16397453/
我看到类似的问题,但似乎是由于一个不相关的问题。 在3.5中,我有一个自定义错误处理程序,用于记录错误并重定向用户。我的web.config设置如下:
我正在尝试为我的网站(ASP.NET 4,集成管道)设置自定义错误页面。 在本地计算机上一切正常,但 .aspx 页面的自定义错误页面不会显示在共享主机上(我看到默认错误页面)。 如果我将 redir
我正在使用 web.config 中的自定义错误属性来处理自定义错误 像这样: 抛出错误后,页面被重定向到错误页面,但是当我访问错误页面中的session时,它是null。 我使用 Response
在旧站点中,我通过添加 redirectMode="ResponseRewrite" 来更改 CustomErrors 的工作方式(3.5 SP1 中的新增功能): 问题是:它向我显示了
我有一个在 IIS 6.0 上运行的 ASP.NET 4.0 MVC Web 应用程序,其 webconfig 自定义错误部分为: 和一个如下所示的 error.aspx 页面: "
按照建议elsewhere ,我在自定义错误配置中使用redirectMode = ResponseRewrite,以便我的自定义错误页面可以访问异常信息。一段时间以来,这就像一种魅力。 在添加更多“
我是一名优秀的程序员,十分优秀!