Response.Redirect 在 Global.asax 中不起作用

2024-03-18

我创建了一个错误页面来显示所有未处理异常的一般消息。

这是Global.asax中的代码

HttpContext ctx = HttpContext.Current;

            string e404_PAGE = ctx.Request.AppRelativeCurrentExecutionFilePath.ToString();
            string e404_LINE = ctx.Server.GetLastError().InnerException.StackTrace.Substring(ctx.Server.GetLastError().InnerException.StackTrace.LastIndexOf(":line ") + 6, ctx.Server.GetLastError().InnerException.StackTrace.Substring(ctx.Server.GetLastError().InnerException.StackTrace.LastIndexOf(":line ") + 6).IndexOf(" ")).ToString();
            string e404_MESSAGE = ctx.Server.GetLastError().InnerException.Message.ToString();
            string e404_METHODNAME = ctx.Server.GetLastError().InnerException.TargetSite.ToString();
            string e404_STACKTRACE = ctx.Server.GetLastError().InnerException.StackTrace.ToString();
            string e404_URL = ctx.Request.Url.ToString();
            string e404_DATE = ctx.Timestamp.ToString("yyyy-MM-dd HH:mm:ss");
            string e404_USER = ctx.User.Identity.Name.ToString();
            string e404_IP = ctx.Request.UserHostAddress.ToString();

            // * * * //

            System.Data.SqlClient.SqlConnection sql_conn;
            sql_conn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ToString());
            sql_conn.Open();
            string query = @"insert into UnhandledExceptions(Message, Page, Line, MethodName, StackTrace, URL, Date, [User], IP) 
                                         values(@Message, @Page, @Line, @MethodName, @StackTrace, @URL, @Date, @User, @IP)
                                         select scope_identity();";
            System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(query, sql_conn);
            com.Parameters.AddWithValue("@Message", e404_MESSAGE);
            com.Parameters.AddWithValue("@Page", e404_PAGE);
            com.Parameters.AddWithValue("@Line", e404_LINE);
            com.Parameters.AddWithValue("@MethodName", e404_METHODNAME);
            com.Parameters.AddWithValue("@StackTrace", e404_STACKTRACE);
            com.Parameters.AddWithValue("@URL", e404_URL);
            com.Parameters.AddWithValue("@Date", e404_DATE);
            com.Parameters.AddWithValue("@User", e404_USER);
            com.Parameters.AddWithValue("@IP", e404_IP);

            string e404_ID = com.ExecuteScalar().ToString();

            sql_conn.Close();

            // * * * //            

            Session["e404_ID"] = e404_ID;
            Response.Redirect("~/Error.aspx");

当我发布网站时,用户不会被重定向到错误页面。

直到最后一行的所有代码都工作正常。有什么建议吗?


Replace Response.Redirect("~/Error.aspx"); with:

// You've handled the error, so clear it. Leaving the server in an error state can cause unintended side effects as the server continues its attempts to handle the error.
Server.ClearError();

// Possible that a partially rendered page has already been written to response buffer before encountering error, so clear it.
Response.Clear();

// Finally redirect, transfer, or render a error view
Response.Redirect("~/Error.aspx");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Response.Redirect 在 Global.asax 中不起作用 的相关文章

随机推荐

  • HTML5、Canvas 和 FireFox

    我对下面所示的 HTML5 Canvas 代码有几个问题 该文本不会出现在 Firefox 3 6 中 它会出现在 Chrome 中 关于 ctx 变量 ctx c getContext 2d 是否应该反复重用该变量以在同一画布上创建其他矩
  • 现代 Fortran:无标签的输出格式

    我正在寻找一种不使用标签来指定输出格式的方法 为了理解我的意思 用标签 write 1001 icount x y 1001 format i5 f5 2 e12 3 没有标签应该是我放的format i5 f5 2 e12 3 在 wri
  • 为什么 User.Identity 不包含 ClaimsTypes 的完整列表?

    我正在开发 ASP NET Core Web 应用程序 我的 dotnet 版本是 3 1 401 我使用的是 Visual Studio Community 2019 版本 16 7 2 我在没有 ASP NET Core Identit
  • HTML 电子邮件在 Google Apps/Gmail 中无法正确显示

    我的 Web 应用程序向用户发送基于 HTML 的电子邮件 我创建了一个 HTML 电子邮件模板 基于 MailChimp 提供的模板 据说该模板可以在任何浏览器 电子邮件客户端中使用 当我使用发送它时SendGrid 它到达并完美地显示在
  • “tsc --out ... --declaration”不包括自定义接口

    Setup假设我们有两个文件 A ts 和 B d ts 现在在 A 里面我们有 class A implements B 现在假设我想将所有打字稿文件合并到一个单一的定义文件中 我知道如何执行此操作的唯一方法是创建一个 js 文件 然后创
  • 错误:任务“:app:dexDebug”执行失败。使用 Facebook Fresco 以非零退出值 2 完成

    我在这里阅读了有关此问题的每一条线索 但找不到我的问题的任何答案 添加 Fresco 库后 我在构建应用程序时收到此错误 有问题的行是 compile com facebook fresco fresco 0 5 3 错误 错误 任务 ap
  • 8位到16位转换

    我有一张捕获 8 位的图像 我正在寻找将 8 位值转换为 16 位值 我用了以下 short temp16 short val i lt lt 8 where val是一个 8 位样本的数组 上面的说法引起了噪音 有人能建议一种8位到16位
  • 将短整型复制到 char 数组

    我有一个名为 s int 的短整型变量 它的值 2 unsighed short s int 2 我想将此数字复制到字符数组的第一个和第二个位置 假设我们有char buffer 10 我们想要两个字节s int复制于buffer 0 an
  • 登录我的帐户时,Telethon 不断将我注销。电报、Python

    该代码似乎运行完美 在我最终再次注销之前 我什至有时间用机器人对其进行了短暂的测试 此时我已经尝试了大约 10 次 但 Telethon 似乎出于某种原因将我从手机上的 Telegram 中删除了 我不知道为什么会发生这种情况 而且我也没有
  • 当我使用 Objective-C 中定义的宏时,Swift 条件编译无法正常工作

    我在 Objective C 头文件中定义了一个简单的宏 并通过项目桥接头文件将该头文件导入到 Swift 中 我能够在 Swift 中使用这个宏作为常量 但是当我使用它进行条件编译时 它无法正常工作 我在 Xcode 10 2 1 中创建
  • 如何在 gtk 中将小部件作为不同的线程加载? (瓦拉)

    我创建了这个类 出于效率原因 我想将缩略图作为不同的线程加载到图标视图中 因为如果我在同一个线程中执行此操作 GUI 加载速度会非常慢 但是当我创建线程时 它不起作用 它绘制了一些缩略图 然后它们就消失了 当我使用 join 时 它有效 这
  • 如何在 Mongoid 中更改文档的 _type?

    我在 Rails 应用程序中有以下模型 class User include Mongoid Document end class Admin lt User end 我得到一个用户 u User find some key 并尝试更改 t
  • 在 API 蓝图中表示文件上传

    我们有一个 API 端点 可以在其中上传图像文件以及文件名 字符串 和描述 字符串 养蜂场 API 蓝图不允许我拥有类似的东西 Request multipart form data Headers Authorization key At
  • Java 中最好的可调整大小的循环字节缓冲区是什么?

    我需要 Java 中的字节缓冲区类以供单线程使用 我应该能够在缓冲区后面插入数据并在前面读取数据 摊销成本为 O 1 缓冲区在满时应该调整大小 而不是抛出异常或其他东西 我可以自己写一个 但如果标准 Java 包中尚不存在这个 我会感到非常
  • 我可以覆盖 test_helper.rb 中的任务:环境来测试 rake 任务吗?

    我在 Rakefile 中有一系列 rake 任务 我想将其作为我的规范等的一部分进行测试 每个任务都以以下形式定义 task do somthing gt environment do Do something with the data
  • 在 Linux 上以编程方式获取准确的 CPU 缓存层次结构信息

    我试图获得 Linux 上当前 CPU 的数据缓存层次结构的准确描述 不仅是各个 L1 L2 L3 可能还有 L4 数据缓存的大小 还包括它们在不同系统之间分割或共享的方式核心 例如 在我的 CPU AMD Ryzen Threadripp
  • data.table 的“i”表达式中不存在(可能的错误)[重复]

    这个问题在这里已经有答案了 When i包含NA 不会返回该特定行 我不确定这是预期的行为还是真的 require data table x data table a c NA 1 3 NA x a gt 0 a 1 1 2 2 3 3 x
  • 如何更改android studio操作语言

    我是中国人 不太习惯android studio的默认语言 我知道这个问题的关键是resources en jar 文件 我已经解压了包裹 但我不知道下一步该做什么 如何更改语言 要更改语言 请按照下列步骤操作 解压Android Stud
  • 当实例变量呈现为数组列表时类的不变性

    我有一个不可变的类 假设我有一个 ArrayList 类型的成员变量的 getter 方法 在这种情况下 当我获得对该变量的引用时 我可以从中添加或删除一个元素 在这种情况下 不变性似乎受到了侵犯 谁能详细解释一下这个概念 你确实是对的 违
  • Response.Redirect 在 Global.asax 中不起作用

    我创建了一个错误页面来显示所有未处理异常的一般消息 这是Global asax中的代码 HttpContext ctx HttpContext Current string e404 PAGE ctx Request AppRelative