Global.asax.cs dosyasında HttpRequestValidationException işlemek için bu kod parçasına sahibim.Üretimde HttpRequestValidationException nasıl yakalanır
protected void Application_Error(object sender, EventArgs e)
{
var context = HttpContext.Current;
var exception = context.Server.GetLastError();
if (exception is HttpRequestValidationException)
{
Response.Clear();
Response.StatusCode = 200;
Response.Write(@"<html><head></head><body>hello</body></html>");
Response.End();
return;
}
}
Web uygulamağumda hata ayıklarsam, mükemmel çalışır. i üretim sunucu üzerine koydu zaman, sunucu bunu yok sayar ve "tehlikeli request.form değeri istemci algılandı" oluşturmak - hata sayfası. Tam ne olduğunu bilmiyorum ... kimse sorunun ne olduğunu, ya da ben yanlış ne biliyorsa ..?
Ayrıca web.config dosyasında validaterequest değerini false olarak ayarlamak istemiyorum.
Sunucu IIS7.5 kullanıyor ve Asp.net 3.5 kullanıyorum.
sayesinde
"context" varlığına ihtiyacınız olduğunu düşünmüyorum. Sadece "Server.GetLastError()" ve "Server.ClearError()" gibi çalışır. – WildJoe
Response.End() tasarım gereği bir istisna atar. Bunun yerine şu kullanın: 'HttpContext.Current.ApplicationInstance.CompleteRequest'. Açıklama için buna bir göz atın: https://support.microsoft.com/en-us/help/312629/prb-threadabortexception-occurs-if-you-use-response-end-response-redir – Kamran