2016-03-28 15 views
1

Bir ajax isteğinden sonra "Maksimum istek uzunluğu aşıldı" hatasını işlemeye çalışıyorum, gerçekten büyük dosyalar için iyi çalışıyor, ancak daha küçük dosyalar için hata yanıtı kaybolur, istediğim gibi idare edemem. Bu, ilgili kodudur:"Maksimum istek uzunluğu aşıldı" hata işleme yalnızca büyük dosyalar için çalışıyor

$(document).on({ 
     ajaxError: function (event, request, settings) { 
      console.log("error Ajax error"); 
      console.log(event); 
      console.log(request); 
      console.log(settings); 
      if(request.responseText.contains("Maximum request length exceeded")){ 
       alert("Error! max file size: " + "@HttpContext.Current.Session["MaxFileSize"]"); 
      } 
     } 
    }); 

150MB yukarıdaki dosyalar için ya da öylesine çalıştığını boyutunda, responseText html hata sayfası, her şeyi istediğiniz gibi çalışır. Ancak daha küçük dosyalar için responseText boş. 20Mb ve 100Mb ile web.config içinde maxRequestLength yapılandırmaya çalıştım, davranış aynı.

Benim application_error içinde breakpoint noktasını gördüğümde gerçekten hatanın olduğunu ve "Max Request Exceeded" hatası olduğunu görebiliyorum, ancak Response'u değiştirmeye çalışırsam, daha küçük dosyalar için gerçekten işe yaramaz. Ben fark

void Application_Error(object sender, EventArgs e) 
    { 
     var lastException = Server.GetLastError(); 

     var logger = NLog.LogManager.GetCurrentClassLogger(); 

     logger.Fatal(lastException); 

     if (lastException.Message.Contains("Maximum request length exceeded")) 
     { 
      this.Server.ClearError(); 
      HttpContext.Current.ClearError(); 
      Response.Write(
       new JavaScriptSerializer().Serialize(
        new { error = "MaxLength Error Occured, handle in page" } 
       ) 
      ); 
     } 
    } 

bir şey responseText kaybolur Application_Error iki kez denir yani, ben onun alakalı emin değilim: iyi çalışıyor büyük dosyalar, burada benim örnek kodudur.

Her yerde arama yaptım ve herhangi bir çözüm bulamadım, çoğu insanın problemi, hata doğru bir şekilde yapılandırıldıktan sonra bile gerçekleşmesidir, benim sorunum, olmaması gerektiğinde gerçekleşmesidir, ne zaman olursa olsun yapmalı, ancak bununla baş edemem çünkü hata yanıtı kayboldu. Bu sorunu çözmek için herhangi bir yönünü takdir ediyorum.

Güncelleme: Farklı bir tarayıcı denemedim, hepsini Firefox'ta yapıyordum, şimdi Chrome ve IE'de denedim ve dosya boyutu ne olursa olsun çalışmaz, istek nesnesinin responseText'i her zaman boş. Application_Error yalnızca bir kez çağrılır, Firefox'ta iki kez ve aynı hata ile çağrılır.

+0

bunu görmezden gel – mants

cevap

0

Soruyu kapatmak istedim. Sonunda anladım. Sorun Visual Studio'da hata ayıklanırken, sunucunun farklı davrandığını tahmin ediyorum, test ortamımızda yayınladığımda hata beklediğim gibi davrandı ve yapılandırdığım sınırın üstünde herhangi bir dosyayla çalıştı.

İlgili konular