SORU
25 HAZİRAN 2009, PERŞEMBE


ASP.NET MVC için büyük dosya yüklenenler izle

Üzerinde çalıştığım bir uygulama için, Kullanıcı çok büyük dosyaları yüklemek için izin istiyorum--yani, birçok gigabayt web sitemiz üzerinden potansiyel olarak. Ne yazık ki, ASP.NET MVC bu hizmet için kesinlikle ideal bir uygulama için başlamadan önce RAM içine tüm isteği yük gibi görünüyor. Özellikle, aşağıdaki gibi bir kod ile bu sorunu atlatmaya çalışıyoruz:

if (request.Method == "POST")
{
    request.ContentLength = clientRequest.InputStream.Length;
    var rgbBody = new byte[32768];

    using (var requestStream = request.GetRequestStream())
    {
        int cbRead;
        while ((cbRead = clientRequest.InputStream.Read(rgbBody, 0, rgbBody.Length)) > 0)
        {
            fileStream.Write(rgbBody, 0, cbRead);
        }
    }
}

tampon--istek--RAM zihniyet. atlatmak için başarısız. Kolay bir şekilde bu davranışa geçici bir çözüm var mı?

CEVAP
10 AĞUSTOS 2009, PAZARTESİ


Benim ilk kod temelde doğru olduğu ortaya çıktı; tek değişiklik gerekli değişikliği oldu

request.ContentLength = clientRequest.InputStream.Length;

için

request.ContentLength = clientRequest.ContentLength;

Eski içerik uzunluğunu belirlemek için tüm istek dere; ikincisi başlıklarını tam olarak gönderilen sadece gerektirir sadece Content-Length Başlığı denetler. Bu IIS tamamen özgün sorunu ortadan kaldırır isteği hemen, streaming başlamak için izin verir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • discokatze

    discokatze

    23 EYLÜL 2009
  • How to Cook ?

    How to Cook

    31 Ocak 2007
  • Just So

    Just So

    3 HAZİRAN 2007