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




iis file-upload (13)

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

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

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

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

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


यदि आपके पास साइट पर किसी एप्लिकेशन पर जाने का अनुरोध है, तो सुनिश्चित करें कि आप root web.config में maxRequestLength सेट करते हैं। अनुप्रयोगों के web.config में maxRequestLength अनदेखा प्रतीत होता है।


अपलोड की गई फ़ाइल के अधिकतम आकार को कॉन्फ़िगर करने के लिए web.config में एक तत्व है:

<httpRuntime 
    maxRequestLength="1048576"
  />

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


यदि आप कॉन्फ़िगरेशन फ़ाइलों को अपडेट नहीं कर सकते हैं लेकिन अपलोड की गई फ़ाइलों को संभालने वाले कोड को पूरा करते हैं तो 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


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 एमबी अगर डिफ़ॉल्ट अपलोड फ़ाइल आकार। इसे बढ़ाने के लिए, कृपया अपने 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 जीबी के बराबर हैं)


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

//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>


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

<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>

मैं कॉन्फ़िगर वेब में असम्पीडित जोड़ सकता हूं

<system.web> 
  <httpRuntime maxRequestLength="1024" executionTimeout="3600" /> 
  <compilation debug="true"/> 
</system.web> 
<security> 
  <requestFiltering> 
    <requestLimits maxAllowedContentLength="1048576"/> 
  </requestFiltering> 
</security>

मैंने तय किया कि मेरे विंडोज 10 पर:

  1. नियंत्रण कक्ष पर जाएं - कार्यक्रम और विशेषताएं - विंडोज़ सुविधाओं को चालू या बंद करें।

  2. .NET Framework 4.6 उन्नत सेवाओं का चयन करें - डब्ल्यूसीएफ सेवाएं

  3. HTTP सक्रियण जांचें।

  4. ठीक है हो गया।





asp.net iis file-upload