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

  • BigBoyTV

    BigBoyTV

    25 EYLÜL 2013
  • pucksz

    pucksz

    24 Mart 2006
  • Videojug

    Videojug

    25 EKİM 2006