Alıcı "en büyük istek uzunluğu aşıldı"
Upload fonksiyonu yazımı ve sorunları "Sistem.alıcı değilim Web.HttpException: en büyük istek uzunluğu aşıldı" dosyaları httpRuntimebelirtilen maksimum boyutundan daha büyük olan bir web.config (max boyutu 5120 set). Dosya için <input> basit bir kullanıyorum.
Sorun istisna Yükle düğmesini tıklayın-olay, özel durum kodu çalıştırmadan önce gerçekleşmeden önce atılmış olmasıdır. Nasıl ve catch yapmalıyım?
DÜZENLEME:Bu durum yavaş bağlantılar nedeniyle zaman aşımı bir sorun değil eminim öyle hemen atılmaz.
CEVAP
Böyle bir durum ne yazık ki yakalamak için kolay bir yolu yoktur. Ben ne sayfa düzeyinde veya genel olarak Application_Error en OnError yöntemi geçersiz olduğunu da.asax, sonra başarısızlık İsteği ve eğer bir hata transfer Max bir sayfa olduğunu kontrol edin.
protected override void OnError(EventArgs e) .....
private void Application_Error(object sender, EventArgs e)
{
if (GlobalHelper.IsMaxRequestExceededException(this.Server.GetLastError()))
{
this.Server.ClearError();
this.Server.Transfer("~/error/UploadTooLarge.aspx");
}
}
Hack ama benim için çalışıyor aşağıdaki kodu bir
const int TimedOutExceptionCode = -2147467259;
public static bool IsMaxRequestExceededException(Exception e)
{
// unhandled errors = caught at global.ascx level
// http exception = caught at page level
Exception main;
var unhandled = e as HttpUnhandledException;
if (unhandled != null && unhandled.ErrorCode == TimedOutExceptionCode)
{
main = unhandled.InnerException;
}
else
{
main = e;
}
var http = main as HttpException;
if (http != null && http.ErrorCode == TimedOutExceptionCode)
{
// hack: no real method of identifying if the error is max request exceeded as
// it is treated as a timeout exception
if (http.StackTrace.Contains("GetEntireRawContent"))
{
// MAX REQUEST HAS BEEN EXCEEDED
return true;
}
}
return false;
}

En büyük istek uzunluğu aşıldı...
Nasıl "mevcut çerçeveler" ekl...
Böyle büyük mükafat uyarı: "Birde...
Böyle büyük mükafat "Yapı ve Arşi...
"Büyük veri" iş akışı pandal...