前言

上段时间做项目时,遇到如题之类问题,如今过去有一段时间了,具体出现的情形忘了,当时虽然找到了解决方法,但是依旧没有弄明白出现此种情况是何种原因,后来在微软的帮助支持中心找到了答案,特此记录,以防遗忘。

症状

使用Response.End(), Response.Redirect()Server.Transfer()方法,将引发ThreadAbortException 异常,可以使用try-catch语句来捕捉此异常。项目中Response.Redirect()用户登录成功跳转某页面,失败跳转某页面(中间有双开,登录超时等等验证)。运行报错:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。

原因

Response.End():结束页执行和将执行切换到应用程序的事件管道中的Application_EndRequest事件,Response.End()之后的代码行不会被执行;
Response.Redirect()Server.Transfer()这两种方法都会内部调用Response.End();

解决方案

  1. 调用HttpContext.Current.ApplicationInstance.CompleteRequest方法,能够绕过Application_EndRequest事件的代码执行。
  2. 对于Response.Redirect(),使用重载,取消内部调用Response.EndendResponse参数(url 字符串、 布尔值 endResponse) 。例如:
    Response.Redirect ("xxxpage.aspx", false);
  3. 对于Server.Transfer(),可以改用Server.Execute()方法。

原文参考地址:https://support.microsoft.com/zh-cn/kb/312629

【.NET】由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。的更多相关文章

  1. Asp.Net异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法

    今天项目中碰到一个以前从没有见过的异常信息“由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值”,于是查了一下资料,原来此异常是由于我在代码中使用了"Response.End ...

  2. asp.net出现的异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值" 的解决方法

    引用: https://support.microsoft.com/zh-cn/kb/312629 症状 如果您使用的Response.End. Response.Redirect或Server.Tr ...

  3. [Bug]由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法(转)

    原因 如果使用 Response.End.Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常.您可以使用 try-ca ...

  4. ASP.NET中一般处理程序报的错误:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值

    1.把context.Response.End();代码换成 HttpContext.Current.ApplicationInstance.CompleteRequest(); 2.把context ...

  5. 异常:Data = 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。

    做项目的时候,将DataTable序列化成Json,通过ashx向前台返回数据的时候,前台总是获取不到数据,但是程序运行却没问题, 没抛出异常.一时找不到办法,减小输出的数据量,这时前台可以接收到页面 ...

  6. C# 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。这个错误是什么原因引起的?

    C# 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值.这个错误是什么原因引起的? 2011-12-17 22:45 提问者: 匿名|浏览次数:6056次 我来帮他解答 图片 符号 ...

  7. Page 由于代码已经过优化或者本机框架位于调用堆栈之上

    Page.Response.Clear();            Page.Response.Write("<script type=\"text/javascript\& ...

  8. asp.net 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值

    看MS给的解决方案:(http://support.microsoft.com/kb/312629/ ) 症状:如果使用 Response.End.Response.Redirect 或 Server ...

  9. 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。System.Threading.ThreadAbortException

    第一次遇到这样的错误 错误语法 try{ Response.Redirect("aa.aspx"); }catch (Exception ex){ Response.Redirec ...

随机推荐

  1. 关于JavaScript的事件绑定

    js事件绑定的几种方式 JavaScript中有三种常用的绑定事件方法: 1. 在DOM元素中直接绑定: 2. 在JavaScript代码中绑定: 3. 绑定事件佳妮婷函数. 一.在DOM元素中直接绑 ...

  2. mysql explain 执行计划详解

    1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询.   2).select_type列常见的有: A:simple ...

  3. TTTTTTTTTTTTTTTTTTT UVA 2045 Richness of words

    J - Richness of words Time Limit:500MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64 ...

  4. NOI2007 项链工厂

    题目链接:戳我 60pts 有一点容易写错的小细节: 比如说求全局的段数的时候,如果只有一种颜色,那么当左右端点相等时,就不要ans--了. 注意右端点小于左端点的情况. #include<io ...

  5. MS14-068提权

    • Ms14- • 库 • https://github.com/bidord/pykek • ms14-.py -u user@lab.com -s userSID -d dc.lab.com • ...

  6. springboot 项目部署后 404的问题

    是因为打包的时候,没有把webapp打包进去 pom.xml 在build 里加入下面的依赖即可 <!-- resources插件,在打jar包时可以将webapp目录下的文件进行打包 --&g ...

  7. SpringBoot2.X 静态文件配置

    Spring Boot 默认会挨个从 META/resources > resources > static > public 里面找是否存在相应的资源,如果有则直接返回. 默认配置 ...

  8. excel中如何设置只打印第一页

    在打印表格时,怎样设置只打印第一页呢,操作很简单,下面,小编说下操作方法.   方法/步骤     打开要打印的工作表, 再点击“文件”   弹出的页面中,在左侧这里,点击“打印”   在右边弹出与打 ...

  9. react 的定义组件(了解)

    react 中定义组件的方法 1. 定义组件 React.createClass() (被淘汰了) 定义组件中的函数 methods 的中的 this 统统指向 组件 2. 函数定义组件 定义的组件时 ...

  10. rocketmq 以广播方式实现消费者消费消息

    package com.bfxy.rocketmq.model; import java.util.List; import org.apache.rocketmq.client.consumer.D ...