Связано с этим вопросом: Невозможно оценить выражение, поскольку код оптимизирован или собственный фрейм находится поверх стека вызовов
В настоящее время я вижу это в своем исключении:
{Невозможно оценить выражение, поскольку код оптимизирован или собственный фрейм находится на вершине стека вызовов.}
Вот код, вызывающий нарушение. Исключение выдается при response.End();
DataSet dataSet = new DataSet();
dataSet.Tables.Add(table);
// Table is a well-formatted DataTable formed from data stored in a Session variable
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.Charset = "";
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Disposition", "attachment;filename=\"ExcelFile.xls\"");
using (StringWriter stringWriter = new StringWriter())
using (HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter))
{
DataGrid dataGrid = new DataGrid { DataSource = dataSet.Tables[0] };
dataGrid.DataBind();
dataGrid.RenderControl(htmlTextWriter);
response.Write(stringWriter.ToString());
response.End();
}
Этот код используется в кнопке «Экспорт в Excel» на веб-странице. Это копируется непосредственно с другой страницы, которая использует ту же функциональность, которая работает правильно.
Есть идеи, как решить эту проблему? Как я могу добраться до точки, где я могу увидеть исключение? Кроме того, как здесь применим соответствующий вопрос? Верхний ответ и избранные ответы невероятно расплывчаты.
Обратите внимание, что данные в таблице хранятся в состоянии сеанса.
Заранее спасибо.