线程被中止错误?在asp.net?

时间:2012-03-09 08:49:15

标签: asp.net

在Web应用程序中,我正在使用代码,下载上传的documnet,这是在datalist的item命令事件中写的,但它给出的错误如“Thread is aborted”你可以帮我解决这个问题,谢谢。我的代码就像休耕一样。

protected void dtlstMagazine_ItemCommand(object source, DataListCommandEventArgs e)
{
   try 
   { 
    objItMagBe.TitleId = Convert.ToInt32(e.CommandArgument);
    dts = new DataSet();
    dts = objItMagBL.GetMagzineByTitleID(objItMagBe);
    GetPopularMagazine();

    string Myfile = "../xxxx/DataFiles/" + dts.Tables[0].Rows[0]["Files"].ToString();
    if (File.Exists(Server.MapPath(Myfile)) == true)
    {
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + Myfile);
        Response.TransmitFile(Server.MapPath(Myfile));
        Response.End();
        Response.Flush();
    }
   }
   catch
   {

    }
}

4 个答案:

答案 0 :(得分:2)

似乎文件很大,所以IIS正在杀死该线程,你应该在web.config中更改它:

<httpRuntime 
    maxRequestLength="1048576"
    executionTimeout="3600"
  />

maxRequestLength以字节为单位

executionTimeout以秒为单位

答案 1 :(得分:1)

你的Response.End()很可能是造成这种情况的原因。这是因为它告诉ASP.NET请求结束了。

Exception中的堆栈跟踪是什么,.NET认为异常是从哪里抛出的?

答案 2 :(得分:0)

您确定在未显示的其他代码中不会发生这种情况吗?通常你会在try-catch中重定向时得到它

答案 3 :(得分:0)

问题是您在Response.End()之前致电Response.Flush()。交换这些陈述的顺序,问题就会消失。