ThreadAbortException, Response.End, Response.Redirect veya Server.Transfer kullanırsanız oluşur
Bu makale , Response.Redirect
veya Server.Transfer
kullanırsanız Response.End
oluşan ThreadAbortException hatasını çözmenize yardımcı olur.
Özgün ürün sürümü: .NET Framework 4.5.2'de ASP.NET, .NET Framework 3.5 Service Pack 1'de ASP.NET
Özgün KB numarası: 312629
Belirtiler
, , Response.Redirect
veya Server.Transfer
yöntemini kullanırsanız Response.End
ThreadAbortException özel durumu oluşur. Bu özel durumu yakalamak için deyimini try-catch
kullanabilirsiniz.
Neden
yöntemi, Response.End
sayfa yürütmeyi sonlandırır ve yürütmeyi uygulamanın olay işlem hattındaki Application_EndRequest olayına kaydırıyor. Aşağıdaki kod Response.End
satırı yürütülmedi.
Bu sorun, ve Server.Transfer
yöntemlerinde Response.Redirect
oluşur çünkü her iki yöntem de Response.End'i dahili olarak çağırır.
Çözüm
Bu sorunu geçici olarak çözmek için aşağıdaki yöntemlerden birini kullanın:
için
Response.End
, kod yürütmesiniHttpContext.Current.ApplicationInstance.CompleteRequest
olaya atlamak yerineResponse.End
yöntemini çağırınApplication_EndRequest
.için
Response.Redirect
, öğesine yapılan iç çağrıyı engellemek için endResponse parametresi için false geçiren response.Redirect(Dize url'si, bool endResponse) aşırı yüklemesiniResponse.End
kullanın. Örneğin:Response.Redirect ("nextpage.aspx", false);
Bu geçici çözümü kullanırsanız, aşağıdaki
Response.Redirect
kod yürütülür.için
Server.Transfer
yöntemini kullanınServer.Execute
.
ASP.NET bu özel durumu işlese de, bu özel durumu yakalamak için deyimini try-catch
kullanabilirsiniz. Örneğin:
try
{
Response.Redirect("nextpage.aspx");
}
catch (Exception ex)
{
Response.Write (ex.Message);
}
Satıra Response.Write
bir kesme noktası ekleyin ve bu kesme noktasına isabet olduğuna dikkat edin. Özel durumu incelediğinizde ThreadAbortException özel durumunun oluştuğuna dikkat edin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin