在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
{
}
}
答案 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()
。交换这些陈述的顺序,问题就会消失。