كيف يمكنني تكوين IIS للتعامل مع تحميل الملفات الكبيرة حقا؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

ومنهاج: IIS 6، ASP.Net 2.0 (صافي 3.5)، خادم 2003

.

وأنا بناء التطبيق الذي يقبل ملفات من مستخدم، العمليات لهم، وإرجاع نتيجة لذلك. يتم تحميل الملف باستخدام وظيفة HTTP إلى نموذج ويب ASP.Net. يتوقع تطبيق بعض الملفات الكبيرة (مئات MB).

وأنا باستخدام SWFUpload لإنجاز تحميل مع شريط التقدم لطيفة، ولكن هذا لا يسهم في هذه المسألة، لأنني عندما تجاوز ذلك باستخدام معيار شكل HTML لافتا في صفحتي القابل للتحميل، وأحصل على نفس الخطأ بالضبط. عند استخدام شريط التقدم، لا يزال تحميل إلى 100٪، ثم فشل. مع النموذج القياسي، يظهر السلوك لتكون هي نفسها.

وأواجه مشكلة الآن تحميل ملف هذا عن 150MB. لقد تغيرت كل الإعدادات يمكنني العثور عليها، ولكن لا يزال لا حظ.

وفيما يلي ملخص لما لقد تغيرت حتى الآن:

في الملف web.config: وأضاف هذا system.web داخل:

<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/>

في machine.config: داخل system.web، يتغير:

<processModel autoConfig="true" />

إلى:

<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />

ووفي MetaBase.xml: تغيير:

AspMaxRequestEntityAllowed="204800"

إلى:

AspMaxRequestEntityAllowed="200000000"

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

كل شيء يعمل بشكل جيد مع الملفات الأصغر (لقد اختبرت تصل إلى حوالي 5.5MB). لست متأكدا بالضبط ما حجم الملف هو الحد، ولكني أعلم أن بلدي الحد يجب أن يكون أعلى من 150MB، لأن هذا ليس هو أكبر ملف العميل سوف تحتاج إلى تحميل.

ويمكن لأي شخص أن تساعد؟

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

المحلول

وكان URLSCAN نشطة على جميع المواقع، ولها انها الخاص طلب كيان حد طول. لم أكن على علم بأن URLSCAN كان يعمل على الخادم لدينا لأنه كان مرشح ISAPI العالمي، لا يعمل على موقع الويب الخاص بي الفردي.

ملحوظة: لتحديد المرشحات ISAPI العالمية، انقر بزر الماوس الأيمن على المجلد مواقع ويب في إدارة IIS ثم انقر فوق خصائص، ثم على علامة التبويب عوامل تصفية ISAPI.

نصائح أخرى

و(A مذكرة لموظفي Google):

لإضافة IIS7 أدناه لالملف web.config (أضفت فوق <system.serviceModel>):

<system.webServer>
        <security>
            <requestFiltering><requestLimits maxAllowedContentLength="262144000" /></requestFiltering> <!-- maxAllowedContentLength is in bytes. Defaults to 30,000,000 -->
        </security>
</system.webServer>

وعندما واجهت هذه المسألة كان علينا أن زيادة الحد حجم المخزن المؤقت وفقا لهذه المادة KB: http://support.microsoft.com/kb/944886/en-us

وأنا أعلم هذا يذكر ASP، ولكن أعتقد أنها عملت ASP.NET كذلك.

وتحرير: هنا هو وجود صلة التي قد تكون أكثر أهمية لمشكلتك، وتوفير خيارات أخرى:
HTTP: // weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

404 والمفقودين Page_Load: IIS يمكن معالجة الطلب مرة واحدة فقط وظيفة كاملة على الملقم. لذلك، إذا فشل وظيفة (نظرا لحجمه)، فإنه لا يمكن إطلاق الأحداث الصفحة.

وكنت قد تحاول NeatUpload http://www.brettle.com/neatupload . من دليل: "افتراضيا، NeatUpload لا يحد بشكل مباشر على حجم الملفات المرفوعه".

ويمكنك أيضا محاولة Velodoc XP الطبعة التي لديها العديد من المزايا أكثر من NeatUpload بما في ذلك حقيقة أنه يستخدم ملحقات ASP.NET اياكس. انظر أيضا وVelodoc الموقع للحصول على مزيد من المعلومات.

وأنت تقول:

ولكن 1536000 هو الوحيد 1.5MB؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top