Response.Redirect 的异常? [复制]

Posted

技术标签:

【中文标题】Response.Redirect 的异常? [复制]【英文标题】:Exception from Response.Redirect? [duplicate] 【发布时间】:2012-06-29 01:49:32 【问题描述】:

可能重复:Call ASP.NET Function From javascript?Response.Redirect causes System.Threading.ThreadAbortException

我不断收到错误:

mscorlib.dll 中出现“System.Threading.ThreadAbortException”类型的第一次机会异常 mscorlib.dll 中出现“System.Threading.ThreadAbortException”类型的异常,但未在用户代码中处理线程“”(0x27ee4 ) 以代码 0 (0x0) 退出。

有人告诉我这与此有关:

protected void Button1_Click(object sender, EventArgs e)
    
        Response.Redirect("Results.aspx?Keywords=" + searchString.Text);  
    

我认为包含我的完整代码可能会有所帮助。上面的代码是我第一个asp页面上唯一的C#代码。

该代码与此页面上的此代码相关。它也是我第二页上唯一的 C# 代码。我只是想将搜索表单中的关键字传递给这段代码:

if (Request.QueryString["Keywords"] != null)
        string keywords = Request.QueryString["Keywords"];
            string myAppID = "HIDDEN";
            var xml = XDocument.Load("http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=" + myAppID + "&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&keywords=" + keywords + "&paginationInput.entriesPerPage=5");
            XNamespace ns = "http://www.ebay.com/marketplace/search/v1/services";
            var titles = from item in xml.Root.Descendants(ns + "title")
                              select new
                                  title = xml.Descendants(ns + "title").Select (x => x.Value),
                              ;
        foreach (var item in titles)
                Label1.Text += item;
             
        

此代码块调用关键字值并在 api 中使用它来执行搜索。 xml(api)格式的代码如下:

<findItemsByKeywordsResponse xmlns="http://www.ebay.com/marketplace/search/v1/services">
<searchReslut count="5">
<item>
    <title></title>
</item>
<item>
    <title></title>
</item>
<item>
    <title></title>
</item>

为什么会出现这个错误,请问如何解决?

【问题讨论】:

您是否总是收到此错误?您是否在代码中的任何位置调用 Thread.Abort() 完全正常的重定向,绝对是骗子。 您添加了标签asp-classic,但您说的是asp.net。你有任何与此相关的经典 .asp(不是 .aspx 或 .cshtml)页面吗? @allencoded,除了例外,您第二页中的代码使您的网站容易受到URL injection attacks. asp.net。现在我从不在任何地方调用 Thread.Abort() 。你看到的是我的 99% 的代码都忽略了页面加载 【参考方案1】:

尝试使用:

Response.Redirect(url, false);

【讨论】:

试过没用,错误消失了,因为我没有得到系统线程的东西。但是我的输出看起来像这样 title = System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String]

以上是关于Response.Redirect 的异常? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

try catch中用了 Response.Redirect 引发的线程异常终止

response.redirect 用法

asp怎样用response.redirect进行页面跳转

Response.Write 和 Response.redirect 不可同时使用

为啥这个response.redirect不起作用?

Response.Redirect和Server.Transfer比较--(转)