我有一个JavaScript函数,它调用页面方法如下:
function openFile(file) {
PageMethods.LoadFile(file);
}
[System.Web.Services.WebMethod]
public static void LoadFile(string fileName)
{
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "application/binary";
var filePath = @"C:\MyFiles\" + fileName;
HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"", fileName));
HttpContext.Current.Response.WriteFile(filePath);
HttpContext.Current.Response.End();
}
页面方法抛出以下异常:
Microsoft JScript运行时错误:Sys.Net.WebServiceFailedException:服务器方法“LoadFile”失败,并显示以下错误:System.Threading.ThreadAbortException--正在中止线程。
我该如何解决这个问题?
答案 0 :(得分:4)
你得到这个例外,因为你调用了End()并强制中止。
<强> HttpContext.Current.Response.End(); 强>
删除它。
参考:http://support.microsoft.com/kb/312629/
如果你google它: HttpContext.Current.Response.End
我现在看到您尝试发送文件,但您已设置本地磁盘的路径。将其更改为您的http地址。