相关疑难解决方法(0)

为什么Response.Redirect导致System.Threading.ThreadAbortException?

当我使用Response.Redirect(...)将表单重定向到新页面时,我收到错误:

mscorlib.dll中出现"System.Threading.ThreadAbortException"类型的第一次机会异常mscorlib.dll中
出现"System.Threading.ThreadAbortException"类型的异常,但未在用户代码中处理

我对此的理解是,错误是由Web服务器中止调用response.redirect的页面的其余部分引起的.

我知道我可以添加第二个参数Response.Redirect,称为endResponse.如果我将endResponse设置为True,我仍然会收到错误,但如果我将其设置为False,那么我不会.我很确定,这意味着网络服务器正在运行我重定向的页面的其余部分.至少可以说这似乎效率低下.有一个更好的方法吗?除了Response.Redirect或有没有办法迫使旧页面停止加载我不会得到的东西ThreadAbortException

c# asp.net .net-3.5

227
推荐指数
6
解决办法
14万
查看次数

如何避免Response.End()"线程被中止"Excel文件下载期间出现异常

我试图将我的数据集转换为excel并下载excel.我得到了我所需的excel文件.但每次excel下载都会引发System.Threading.ThreadAbortException.如何解决这个问题?请帮帮我...

我在我的aspx屏幕中调用此方法.此方法也引发了同样的异常.

我在许多aspx屏幕中调用public void ExportDataSet(DataSet ds)函数,并且我正在为运行时引发的异常维护错误记录器方法,将这些异常写入.txt文件.所以在所有aspx屏幕的txt文件中记录了相同的异常.我只想避免从方法声明的类文件抛出到aspx的异常抛出.我只是想在我的方法声明类文件本身处理这个异常.

ASPX文件方法调用:excel.ExportDataSet(dsExcel);

方法定义:

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 = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

89
推荐指数
4
解决办法
13万
查看次数

标签 统计

asp.net ×2

c# ×2

.net-3.5 ×1