I am getting this error message:
_message = "Thread was being aborted."
when I do
Response.Redirect("Default.aspx")
Can anyone help me?
答案 0 :(得分:0)
This is normal behavior. See the documentation for this method. If you ever suspect something wrong with .NET, then always check MSDN first.
答案 1 :(得分:0)
类似的问题:
Is Response.End() considered harmful?
Per Mason的链接:“重定向调用End,在完成时抛出ThreadAbortException异常。”
而不是正确引发异常的response.End(),我认为以下内容可能会解决问题:
// Prevents any other content from being sent to the browser
response.SuppressContent = True;
// Directs the thread to finish, bypassing additional processing
HttpContext.Current.ApplicationInstance.CompleteRequest();
我们不会在这里看到为什么会这种情况发生的大局:
(1)我们永远不应该首先在Response对象上调用End()方法。唯一的原因仍然是当前API的一部分是与旧ASP的兼容性。
(2)当我们调用End()时,我相信我们正在杀死运行Web表单的相同进程,这就是微软首先提出异常的原因。
答案 2 :(得分:0)
您可以执行以下操作:
Response.Redirect("Default.aspx", false);
return;
这不会结束响应,因此不会抛出ThreadAbortException。调用return确保不会不必要地执行以下逻辑。
msdn链接https://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.110).aspx说明如下:
将endResponse设置为false,然后调用CompleteRequest方法。如果为endResponse参数指定true,则此方法为原始请求调用End方法,该方法在完成时抛出ThreadAbortException异常。此异常对Web应用程序性能有不利影响,这就是建议为endResponse参数传递false的原因。
答案 3 :(得分:0)
您需要发送“false”以及要重定向用户的路径。类似于:Response.Redirect("Default.aspx", false);