Eu tentei converter meu conjunto de dados em Excel e fazer o download desse Excel. Consegui meu arquivo Excel necessário. Mas System.Threading.ThreadAbortException foi gerado a cada download do Excel. Como resolver esse problema? .. Por favor me ajude ...
Eu chamo esse método na minha tela aspx. Também há mesma exceção lançada por esse método.
Eu chamo essa função public void ExportDataSet (DataSet ds) em muitas telas aspx e também estou mantendo o método de logger de erros para exceções que são geradas em tempo de execução, essas exceções são gravadas em arquivos .txt. Portanto, essa mesma exceção é registrada em todos os arquivos txt da tela do aspx. Eu só quero evitar que essa exceção lance do arquivo de classe declarado do método para o aspx. Simplesmente, eu só quero lidar com essa exceção em meu próprio arquivo de classe de declaração de método.
Chamada do método de arquivo ASPX: excel.ExportDataSet (dsExcel);
Definição do Método:
public void ExportDataSet(DataSet ds)
{
try
{
string filename = "ExcelFile.xls";
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.Charset = "";
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
GridView dg = new GridView();
dg.DataSource = ds.Tables[0];
dg.DataBind();
dg.RenderControl(htw);
// response.Write(style);
response.Write(sw.ToString());
response.End(); // Exception was Raised at here
}
}
}
catch (Exception ex)
{
string Err = ex.Message.ToString();
EsHelper.EsADLogger("HOQCMgmt.aspx ibtnExcelAll_Click()", ex.Message.ToString());
}
finally
{
}
}
Response.End
consulte stackoverflow.com/a/3917180/2864740 (e as outras respostas); observe que a exceção é "esperada", pois é como a pilha é desfeita (portanto, não capture essa exceção). Se você ainda quiser capturar [outras] exceções, use:.. catch (ThreadAbortException) { throw; /* propagate */ } catch (Exception ex) { .. }