【发布时间】:2010-03-04 09:50:40
【问题描述】:
我正在尝试使用 Context.Response.End 关闭响应,但收到错误 "Thread was being aborted"。
如何在不触发异常的情况下正确关闭响应?
try {
Context.Response.Clear();
Context.Response.ContentType = "text/html";
//Context.Response.ContentType = "application/json";
JsonObjectCollection collection = new JsonObjectCollection();
collection.Add(new JsonNumericValue("resultcode", 1));
collection.Add(new JsonStringValue("sourceurl", exchangeData.cUrl));
collection.Add(new JsonStringValue("filename", fileName));
collection.Add(new JsonStringValue("filesize", fileSize));
collection.Add(new JsonStringValue("fileurl", Common.GetPDFURL + outputFileName));
JsonUtility.GenerateIndentedJsonText = true;
Context.Response.Write(collection);
try {
Context.Response.End();
} catch (ThreadAbortException exc) {
// This should be first catch block i.e. before generic Exception
// This Catch block is to absorb exception thrown by Response.End
}
} catch (Exception err) {
}
自己解决了,代码应该是这样的
try {
Context.Response.End();
} catch (ThreadAbortException err) {
}
catch (Exception err) {
}
【问题讨论】:
-
你在 try catch 块中有 respose.end 吗?
-
我已经添加了我的代码。是的,我添加了 Context.Response.End();在 Try/catch 块内,如您所见,有一个主要的 Try/catch 块,它也是捕获错误“线程被中止”。
-
自己解决了,代码应该是这样的 try { } catch (ThreadAbortException err) { } catch (Exception err) { }
标签: asp.net