هل يجب أن يزداد Aspbufferlimit من أي وقت مضى من الافتراضي 4 ميغابايت؟

StackOverflow https://stackoverflow.com/questions/1744241

  •  20-09-2019
  •  | 
  •  

سؤال

طلب زميل مطور مؤخرًا أن يتم زيادة AspbufferLimit في IIS 6 من القيمة الافتراضية البالغة 4 ميغابايت إلى حوالي 200 ميجابايت لتدفق ملفات zip أكبر.

بعد أن تركت عالم ASP الكلاسيكي منذ بعض الوقت ، كنت أخدش رأسي حول سبب رغبتك في التخزين Response.Buffer = false. ولكن هل هناك أي حالة تحتاج فيها حقًا إلى جعله 50x الحجم الافتراضي؟

من الواضح أن استهلاك الذاكرة سيكون أكبر قلق. هل هناك مخاوف أخرى من تغيير هذا الإعداد الافتراضي؟

هل كانت مفيدة؟

المحلول

زيادة المخزن المؤقت مثل هذه فكرة سيئة للغاية. سوف تسمح لكل زائر لموقعك باستخدام ما يصل إلى كمية ذاكرة الوصول العشوائي. إذا كان لديك BinaryWrite/Response.Buffer=false الحل لا يرضيه ، يمكنك أيضًا أن تقترح أن يتصل Response.Flush() الأن و لاحقا. إما أن يكون من الأفضل زيادة حجم المخزن المؤقت.

في الواقع ، ما لم يكن لديك سبب وجيه للغاية ، فلا ينبغي عليك حتى تمرير هذا من خلال معالج ASP. اكتبها إلى مكان خاص على القرص المخصص لمثل هذه الأشياء وإعادة التوجيه هناك بدلاً من ذلك.

نصائح أخرى

أحد الجوانب السلبية لإيقاف المخزن المؤقت (يمكنك استخدام Flush ، لكنني لا أفهم حقًا سبب قيامك بذلك في هذا السيناريو) هو أن العميل لا يتعلم طول المحتوى في بداية التنزيل. ومن ثم فإن مربع حوار المتصفحات في الطرف الآخر أقل معنى ، لا يمكن أن يعرف مقدار التقدم الذي تم إحرازه.

البديل الأفضل (IMO) هو كتابة المحتوى المطلوب إلى ملف مؤقت (ربما باستخدام GUID لاسم الملف) ثم إرسال إعادة توجيه إلى العميل يشير إلى هذا الملف المؤقت.

هناك عدد من الأسباب التي تجعل هذا النهج أفضل:-

  • يحصل العميل على معلومات تقدم جيدة في مربع الحوار أو التطبيق الذي يتلقى البيانات
  • يمكن أن تستفيد بعض التطبيقات بشكل جيد من تجلبات نطاق البايت والتي تعمل بشكل جيد فقط عندما يقوم الخادم بتسليم المحتوى "الثابت".
  • يمكن إعادة استخدام الملف المؤقت لطلبات Satisify من العملاء الآخرين

هناك عدد من الجانب السلبي على الرغم من:-

  • إذا استغرق الأمر في وقت ما لإنشاء محتوى الملف ، فإن الكتابة إلى ملف مؤقت يمكن أن تترك بعض الكمون قبل استلام البيانات وزيادة وقت التنزيل.
  • إذا كانت هناك حاجة إلى أمان قوي على المحتوى الذي يحتوي على ملف ثابت ، فقد يكون مصدر قلق على الرغم من أن استخدام اسم ملف GUID عشوائيًا يخفف من ذلك إلى حد ما
  • هناك حاجة لبعض التدبير المنزلي على الملفات المؤقتة القديمة.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top