سؤال

أنا أختبر httphandler الذي يقبل XML. إنه يعمل بشكل جيد عند نشر كمية صغيرة من البيانات ولكن إذا قمت بنشر البيانات أكبر ثم حوالي 29 ميجابايت ، أحصل على خطأ ASP.NET 404.

أقوم بنشر المعالج من معالج آخر في نفس المشروع وقد جربت طريقتان - 1. httpwebrequest مع "post" 2. webclient مع تحميل file () و exploaddata ()

أحصل على نفس خطأ 404 عندما تكون البيانات المنشورة أعلاه 28.6 ميغابايت.

حاولت أيضًا وضع نقطة توقف في بداية معالج الاستلام وتصحيح الأخطاء. لم يتم ضربه أبدًا. يبدو أن المعالج لم يطلق عليه أبدًا. يعمل بشكل جيد للبيانات الحجم الأصغر.

لدي بالفعل الإعداد التالي. ما الخطأ الذي افعله؟

<httpRuntime maxRequestLength="1048576" />

تحرير: لقد حاولت أيضًا النشر إلى معالج مختلف لا يستهلك البيانات المنشورة ، فقط للاختبار ، ولكن النتائج هي نفسها. البيئة: Win 7 ، IIS 7.5 ، .NET 3.5 ، VS 2008alt text http://img401.imageshack.us/img401/4099/errormr.png

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

المحلول

اكتشفت أن المشكلة هي مع IIS 7 وما فوق. يتطلب تعيين طول طلب MAX في مكان مختلف.

انظر الروابط التالية -

http://www.experts-exchange.com/programming/languages/.net/asp.net/q_22943810.html

http://msdn.microsoft.com/en-us/library/ms689462٪28vs.90٪29.aspx

القيمة الافتراضية هي 30000000. وهو 28.6 ميجابايت. الطريقة الصحيحة للضبط في web.config هي -

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824"></requestLimits>
      </requestFiltering>
    </security>
  </system.webServer>

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

هل هذا يعني أن الإعدادu003ChttpRuntime maxRequestLength="1048576" /> يكفي ل IIS 6؟ (الخادم المباشر هو Win2003)

نصائح أخرى

حاول إضافة هذا القسم إلى web.config ملف:

<location path="YourHandler.aspx">
    <system.web>
        <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
    </system.web>
</location>

على افتراض أنك مسار المعالج YourHandler.aspx.

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