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


1049

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

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

जवाबों:


1969

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

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

IIS7 और इसके बाद के संस्करण के लिए, आपको नीचे की पंक्तियों को भी जोड़ना होगा:

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

नोट :

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

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


7
धन्यवाद साचिन और मैंने कुछ बात जोड़ी जैसे <httpRuntime maxRequestLength = "32768" निष्पादन समय = "180" />
सूर्या सदिशर

11
maxAllowedContentLength बाइट्स में होनी चाहिए, किलोबाइट नहीं, इसलिए दिए गए उदाहरण समकक्ष नहीं हैं।
मैथ्यू शार्प

33
IIS 7.5 और VS RC 2012 IIS एक्सप्रेस दोनों के साथ मुझे इनमें से किसी को सेट करना था। HttpRuntime एक ASP.NET की अधिकतम लंबाई को कॉन्फ़िगर करता है, जबकि requestLimits IIS की अधिकतम लंबाई, stackoverflow.com/questions/6327452/… और मंचों.iis.net/t/1169846.aspx
Despertar

18
यह इंगित करने के लायक है, फिर से, कि मैक्सअलाउंटकॉन्ट्रेंटलिफ्ट बाइट्स में है, किलोबाइट्स नहीं। दो मान एक ही संख्या नहीं होनी चाहिए, क्योंकि वे समान माप इकाई नहीं हैं।
पंडिंकस

13
सुनिश्चित करें कि आप इस सेटिंग को फ़ोल्डर के Web.configअंदर एक के बजाय मुख्य में जोड़ रहे हैंViews
सर्ज सागर

553

मुझे नहीं लगता कि इसका उल्लेख यहां किया गया है, लेकिन इस काम को पाने के लिए, मुझे 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 हैं

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


5
किसी को भी यह चिंता हो सकती है: यह उत्तर
IIS-

5
हां, यह वह जवाब है जो सचिन के जवाब के बजाय मेरे लिए काम करता है। यह एज़्योर पर भी काम करता है।
गौतम जैन

5
यह निश्चित रूप से सही उत्तर है ... दोनों प्रविष्टियों को उपस्थित होना चाहिए। एमवीसी 3 के मामले में, यह प्रोजेक्ट रूट web.configफाइल में हो सकता है ।
मिगुएल एंजेलो

2
एक अन्य महत्वपूर्ण बात 'एक्जीक्यूटिवआउट' है जिसमें कार्ल का उल्लेख है
मुहम्मद अमीन

26
मुझे इसके लिए एक मौजूदा लाइन के साथ संयोजन करना था: <httpRuntime targetFramework = "4.5" maxRequestLength = "1048576" निष्पादन समय = "3600" />
केन Mc

195

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

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

स्थान के बारे में सोचकर अच्छा समाधान। लेकिन क्या एमवीसी (और इसलिए मार्गों के साथ काम करना) के साथ काम करते समय कोई स्थान पथ है?
लुका क्रिजेन

1
यह उस मार्ग के अनुरूप URL होगा जिसे आपने अपनी अपलोड कार्रवाई सेट की है। मेरे मामले में, मेरे पास अपलोड करने वाली एक कार्रवाई के साथ एक दस्तावेज़ नियंत्रक है जिसे मैं फ़ॉर्म को पोस्ट करता हूं। आपके मामले में यह वही होगा जो आपके कार्य के लिए url होगा।
निक अल्ब्रेक्ट

जो कोई भी इस जवाब को पसंद करता है, उसे देखें
DontVoteMeDown

2
यार तुम रॉक। क्षमा करें, लेकिन मेरा छोटा सा वोट पर्याप्त नहीं था।
निकोलस पीटरसन

1
यह MAPV v5 तक और इसके लिए WebAPI के साथ काम करेगा। एक बार जब आप ASP.NET Core को MVC Core के साथ हिट करते हैं, तो आपके द्वारा Kestrel के लिए अलग-अलग विकल्प होने चाहिए।
निक अल्ब्रेक्ट

44

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

//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 (((System.Web.HttpException)httpException.InnerException).WebEventCode == System.Web.Management.WebEventCodes.RuntimeErrorPostTooLarge)
    {
        //handle the error
        Response.Write("Too big a file, dude"); //for example
    }
}

(ASP.NET 4 या बाद में आवश्यक)


1
अपवाद पीढ़ी के लिए maxAllowedContentLength (maxRequestLength * 1024) से अधिक होना चाहिए।
डेर_मिस्टर

इस पोस्ट ने मुझे वह दिया जो मुझे उपयोगकर्ता को चेतावनी HttpContext.Current.ClearError()देने के Response.Redirect()लिए आवश्यक था लेकिन इसे ठीक से काम करने की अनुमति देने के लिए आवश्यक था । के संदर्भ में web.configयह सिर्फ की maxRequestLengthविशेषता के साथ काम करता है httpRuntime
बजे

फ़ाइल का आकार सत्यापन और उपयोगकर्ता के अनुकूल संदेश onchangeअपलोड स्तर पर एक घटना का उपयोग करके जेएस के माध्यम से किया जा सकता है और अधिकतम अपलोड सीमा के साथ अपलोड फ़ाइल आकार की तुलना कर सकता है।
अल्फ्रेड वालेस

29

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

यह यहाँ बताया गया है

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


4
लिंक Microsoft समर्थन मुखपृष्ठ पर मुझे रीडायरेक्ट हो रहा है
बिशप

1
शायद कुछ गड़बड़ थी। लिंक यहाँ
gofr1

22

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

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

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


भयानक, तो शीर्ष उत्तर में> 1600 वोट कैसे हैं, और यह केवल 5 है? यह भयानक है, क्योंकि अक्सर, यह सिर्फ एक ही क्रिया है जो हम इस पर चाहते हैं। इसके अलावा, अन्य सेटिंग्स के साथ कोई गड़बड़ नहीं, आदि
निकोलस पीटरसन

यह वही है जिसे मैं देख रहा था।
क्रिस कैटिगानी

20

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

<httpRuntime 
    maxRequestLength="1048576"
  />

11

एक ही स्थान पर सभी उत्तरों को संक्षेप में प्रस्तुत करने के लिए:

<system.web>
  <httpRuntime targetFramework="4.5.2" maxRequestLength="1048576"/>
</system.web>

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

नियम:

  • maxRequestLength (kb में व्यक्त) मान को maxAllowedContentLength (बाइट्स में व्यक्त) से मेल खाना चाहिए।
  • अधिकांश समय आपके system.web अनुभाग में पहले से ही एक "httpRuntime" हो सकता है। अपने लक्ष्य। सेट का उपयोग अपने .net के संस्करण में करें।

टिप्पणियाँ:

  • अधिकतम मूल्य के लिए डिफ़ॉल्ट मान 4096 (4mb) है। अधिकतम मूल्य 2,147,483,647 है
  • maxAllowedContentLength के लिए डिफ़ॉल्ट मान 30,000,000 (लगभग 30mb) है। अधिकतम मूल्य 4,294,967,295 है

अधिक जानकारी MSDN


8

maxRequestLength (KB में लंबाई) यहाँ पूर्व के रूप में है। मैंने 1024 (1MB) अधिकतमअनुकूलित गति (बाइट्स में लंबाई) ले लिया, आपकी अधिकतम लंबाई (1048576 बाइट्स = 1MB) के समान होनी चाहिए।

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

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

6

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


5

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


अगर मैं इसे एक से अधिक बार बढ़ा सकता हूं। इससे मेरी जिंदगी का एक दिन बर्बाद हो गया। आप किसी वर्चुअल निर्देशिका उप आवेदन है, तो आप डाल करने के लिए है httpRuntime maxRequestLength="###और requestLimits maxAllowedContentLengthउप-ऐप्लिकेशन स्तर पर नहीं रूट स्तर पर एक वेब config में,।
निकवंस 14

1

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


1

मुझे C:\Windows\System32\inetsrv\config\applicationHost.configफ़ाइल को संपादित करना था और <requestLimits maxAllowedContentLength="1073741824" />अंत में जोड़ना था ...

<configuration>
    <system.webServer>
        <security>
            <requestFiltering>

अनुभाग।

के अनुसार यह Microsoft समर्थन अनुच्छेद


अपने प्रोजेक्ट से web.config को ओवरराइड करना चाहिए, इसलिए मुझे संशोधित करने की आवश्यकता नहीं है applicationHost.config
bvgheluwe 10:27

-3

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

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

1
executionTimeoutविशेषता क्या कहा जाता है के साथ कोई संबंध नहीं है, और न तो करता है compilationटैग।
मथियास लिकेकेगार्ड लोरेनजेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.