نشر البيانات على httphandler أكبر ثم ~ 29 ميجابايت يعطي خطأ 404
-
01-10-2019 - |
سؤال
أنا أختبر 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
.