【问题标题】:Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack无法评估表达式,因为代码已优化或本机框架位于调用堆栈顶部
【发布时间】:2026-02-07 10:45:01
【问题描述】:
if (!advertismentsDao.AdvertisementUrlExist(ad.Url))
{
    if (!advertismentsDao.AdvertisementExist(ad.Price, 
                                             ad.HollidayDuration, 
                                             ad.Name, 
                                             ad.Description, 
                                             ad.City, 
                                             ad.Area, 
                                             ad.Country,
                                             ad.Agency))
    {
       advertismentsDao.Save(ad);
       advertismentsDao.CommitChanges(); 
    }
}

给我:

InnerException = 无法评估 表达式,因为代码是 优化或原生框架位于顶部 调用堆栈。

错误是我来到这里的 CommitChanges()。我谷歌但我无法解决我的问题

【问题讨论】:

    标签: c#


    【解决方案1】:

    我怀疑这不是 实际上内部异常 - 我怀疑这正是调试器在您尝试检查异常时向您显示的内容。

    将完整的堆栈跟踪转储到日志中,这应该会给出真正的异常,然后应该清楚提交失败的原因。

    【讨论】:

      【解决方案2】:

      这是由于 ThreadAbortException 引起的。只需在代码块末尾使用以下代码即可。它可能会解决您的问题。

      /*
      
       catch (System.Threading.ThreadAbortException)
       { }
      
      */
      

      【讨论】:

        最近更新 更多