asp.net出现的异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值" 的解决方法
2015-07-29 17:27
411 查看
引用: https://support.microsoft.com/zh-cn/kb/312629
症状
如果您使用的Response.End、 Response.Redirect或Server.Transfer方法,将引发异常时发生。您可以使用try-catch语句可以捕捉此异常。
原因
Response.End方法结束执行页,并将执行切换到应用程序的事件管道中的Application_EndRequest事件。按照Response.End的代码的行不会被执行。
因为这两种方法都会内部调用Response.End , Response.Redirect和Server.Transfer方法中发生此问题。
解决方案
要解决此问题,请使用下列方法之一:
对于 Response.End调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 若要跳过对代码执行 Application_EndRequest 事件。
对于 Response.Redirect使用重载时, Response.Redirect (url 字符串、 布尔值 endResponse) 传递 假 对于 endResponse 若要取消内部调用的参数 Response.End.例如:
如果您使用此替代方法,该代码的后面 Response.Redirect 执行。
对于 Server.Transfer使用 Server.Execute 方法相反。
症状
如果您使用的Response.End、 Response.Redirect或Server.Transfer方法,将引发异常时发生。您可以使用try-catch语句可以捕捉此异常。
原因
Response.End方法结束执行页,并将执行切换到应用程序的事件管道中的Application_EndRequest事件。按照Response.End的代码的行不会被执行。
因为这两种方法都会内部调用Response.End , Response.Redirect和Server.Transfer方法中发生此问题。
解决方案
要解决此问题,请使用下列方法之一:
对于 Response.End调用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 若要跳过对代码执行 Application_EndRequest 事件。
对于 Response.Redirect使用重载时, Response.Redirect (url 字符串、 布尔值 endResponse) 传递 假 对于 endResponse 若要取消内部调用的参数 Response.End.例如:
Response.Redirect ("nextpage.aspx", false);
如果您使用此替代方法,该代码的后面 Response.Redirect 执行。
对于 Server.Transfer使用 Server.Execute 方法相反。
相关文章推荐
- ASP.NET WEB API简介
- Spring -- AOP入门基础&基于Aspect的AOP通知用法
- iTextSharp5.0页眉页脚及Asp.net预览的实现(PDF导出)
- Asp.Net超时问题汇总
- ASP.NET数据库连接字符串
- RSA实现登录页面密码加密(ASP.NET MVC)
- IIS中的asp.net不见了
- IIS发布ASP网页错误
- Metasploit数据库问题汇总
- asp.net 日期格式
- ASP.NET 5与MVC 6中的新特性
- iis 更改asp.net 版本设置
- ASP.NET Web基本原理
- iOS9 CASpringAnimation 弹簧动画详解
- liteIDE 交叉编译
- Asp.Net 导出Excel数据文件
- 树莓派 raspberry安全关机命令重启命令
- ASP.NET会话(Session)保存模式
- 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
- Raspberry vnc 连接