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

时间:2011-03-25 09:05:26

标签: c#

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()。我谷歌,但我无法解决我的问题

2 个答案:

答案 0 :(得分:8)

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

将完整的堆栈跟踪转储到日志中,这应该提供真正的异常,然后应该明确提交失败的原因。

答案 1 :(得分:2)

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

/*

 catch (System.Threading.ThreadAbortException)
 { }

*/