InnerException =无法计算表达式,因为代码已优化或本机框位于调用堆栈之上

时间:2013-10-07 07:21:30

标签: c# asp.net entity-framework

我的代码是

请给我解决方案......谢谢

  bool b = false;
  string str=Server.MapPath("~/Files/"+filepath);


      //  Send the file to the browser
      Response.AddHeader("Content-type", filetype);
      Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);

      Response.TransmitFile(Server.MapPath("~/Files/" + filepath));


      Response.Flush();
      //  HttpContext.Current.ApplicationInstance.CompleteRequest();
       Response.End();

      b = true;

3 个答案:

答案 0 :(得分:2)

此通知表示该线程当前正在执行代码,因此无法用于评估表达式。

使用

 HttpContext.Current.ApplicationInstance.CompleteRequest 

而不是Response.End();

Response.FlushResponse.End做同样的事情,除了Response.End停止执行页面,并引发EndRequest事件。

当前响应过早结束时,调用End方法会抛出ThreadAbortException异常。

答案 1 :(得分:1)

所以我遇到了同样的问题,我正在使用异步触发按钮

<asp:AsyncPostBackTrigger ControlID="btn_login" />

在更新面板中。我切换到常规帖子不是最好的,但它的工作。

<asp:PostBackTrigger ControlID="btn_login" />. 

由于我只是在页面上重定向,这是一个可行的解决方案。

答案 2 :(得分:0)

也许是因为Response.End会出现线程误差?看到 http://msdn.microsoft.com/en-us/library/system.web.httpresponse.end.aspx