asp.net - अधिकतम निवेदन लंबाई से अधिक।




iis file-upload (10)

maxRequestLength (केबी में लंबाई) यहां पूर्व के रूप में। मैंने 1024 (1 एमबी) maxAllowedContentLength (बाइट्स में लंबाई) लिया है आपके maxRequestLength (1048576 बाइट्स = 1 एमबी) के समान होना चाहिए।

<system.web>
   <httpRuntime maxRequestLength="1024"
             executionTimeout="3600" />
   <compilation debug="true"/>
</system.web>

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="1048576"/>
  </requestFiltering>
</security>

मुझे त्रुटि मिल रही है जब मैं अपनी साइट में एक वीडियो अपलोड करने का प्रयास कर रहा हूं तो अधिकतम अनुरोध लंबाई पार हो गई है

मैं यह कैसे तय करुं?


अधिकतम अनुरोध आकार डिफ़ॉल्ट रूप से 4 एमबी (4096 केबी) है

यह यहां समझाया गया है: http://support.microsoft.com/default.aspx?scid=kb;EN-US;295626

उपर्युक्त आलेख यह भी बताता है कि इस समस्या को कैसे ठीक किया जाए :)


और अगर कोई इस अपवाद को संभालने का तरीका ढूंढ रहा है और उपयोगकर्ता को सार्थक स्पष्टीकरण दिखाता है (जैसे "आप एक फ़ाइल अपलोड कर रहे हैं जो बहुत बड़ा है"):

//Global.asax
private void Application_Error(object sender, EventArgs e)
{
    var ex = Server.GetLastError();
    var httpException = ex as HttpException ?? ex.InnerException as HttpException;
    if(httpException == null) return;

    if(httpException.WebEventCode == WebEventCodes.RuntimeErrorPostTooLarge)
    {
        //handle the error
        Response.Write("Too big a file, dude"); //for example
    }
}

(एएसपी.नेट 4 या बाद में आवश्यक)


कृपया अपनी समस्या को हल करने के लिए इस कोड डिमूरर को जांचें .. इसे कॉपी करें, यह एक web.config फ़ाइल है। ।

<system.web>
     <httpRuntime executionTimeout="3600" maxRequestLength="102400" requestLengthDiskThreshold="80" useFullyQualifiedRedirectUrl="false"
     minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableKernelOutputCache="true" enableVersionHeader="true"
     requireRootedSaveAsPath="true" enable="true" shutdownTimeout="90" delayNotificationTimeout="5" waitChangeNotification="0"
     maxWaitChangeNotification="0" enableHeaderChecking="true" sendCacheControlHeader="true" apartmentThreading="false" />
<system.web>

मुझे नहीं लगता कि इसका उल्लेख यहां किया गया है, लेकिन यह काम करने के लिए, मुझे इन दोनों मानों को web.config में आपूर्ति करना था:

system.web

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

और system.webServer

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>
</security>

महत्वपूर्ण : इन दोनों मानों से मेल खाना चाहिए। इस मामले में, मेरा अधिकतम अपलोड 1024 मेगाबाइट है।

maxRequestLength 1048576 KILOBYTES है , और maxAllowedContentLength 1073741824 BYTES है

मुझे पता है कि यह स्पष्ट है, लेकिन इसे नजरअंदाज करना आसान है।


मैं इस तथ्य से फंस गया था कि हमारी web.config फ़ाइल में कई system.web सेक्शन हैं: जब मैंने कॉन्फ़िगरेशन स्तर पर system.web सेक्शन में <httpRuntime maxRequestLength = "1048576" /> जोड़ा था तो यह काम करता था।


यदि आप अपने आवेदन को होस्ट करने के लिए आईआईएस का उपयोग कर रहे हैं, तो 4 एमबी अगर डिफ़ॉल्ट अपलोड फ़ाइल आकार। इसे बढ़ाने के लिए, कृपया अपने web.config में इस अनुभाग का उपयोग करें -

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="1048576" />
    </system.web>
</configuration>

आईआईएस 7 और ऊपर के लिए, आपको नीचे दी गई लाइनों को भी जोड़ने की आवश्यकता है:

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

नोट :

  • maxRequestLength किलोबाइट्स में मापा जाता है
  • maxAllowedContentLength बाइट्स में मापा जाता है

यही कारण है कि इस कॉन्फ़िगरेशन उदाहरण में मान भिन्न हैं। (दोनों 1 जीबी के बराबर हैं)


यदि आप कॉन्फ़िगरेशन फ़ाइलों को अपडेट नहीं कर सकते हैं लेकिन अपलोड की गई फ़ाइलों को संभालने वाले कोड को पूरा करते हैं तो HttpContext.Current.Request.GetBufferlessInputStream(true) उपयोग करें।

disableMaxRequestLength पैरामीटर के लिए true मान कॉन्फ़िगरेशन अनुरोध सीमाओं को अनदेखा करने के लिए ढांचे को बताता है।

विस्तृत विवरण के लिए https://msdn.microsoft.com/en-us/library/hh195568(v=vs.110).aspx पर https://msdn.microsoft.com/en-us/library/hh195568(v=vs.110).aspx


यह ध्यान देने योग्य हो सकता है कि आप इस परिवर्तन को यूआरएल में सीमित करना चाहते हैं, जिसे आप अपलोड के लिए इस्तेमाल करने की अपेक्षा करते हैं, बल्कि आपकी पूरी साइट।

<location path="Documents/Upload">
  <system.web>
    <!-- 50MB in kilobytes, default is 4096 or 4MB-->
    <httpRuntime maxRequestLength="51200" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 50MB in bytes, default is 30000000 or approx. 28.6102 Mb-->
        <requestLimits maxAllowedContentLength="52428800" /> 
      </requestFiltering>
    </security>
  </system.webServer>
</location>

यह मुझे दिनों के लिए भी परेशान करता है। मैंने Web.config फ़ाइल को संशोधित किया लेकिन यह काम नहीं किया। यह पता चला कि मेरी परियोजना में दो Web.config फ़ाइल हैं, और मुझे रूट निर्देशिका में एक को संशोधित करना चाहिए, न कि दूसरों को। उम्मीद है कि यह सहायक होगा।





file-upload