උපරිම ඉල්ලීම් දිග ඉක්මවා ඇත.


1055

මම දෝෂය ලබා ගනිමි මගේ වෙබ් අඩවියේ වීඩියෝවක් උඩුගත කිරීමට උත්සාහ කරන විට උපරිම ඉල්ලීම් දිග ඉක්මවා ඇත.

මෙය නිවැරදි කරන්නේ කෙසේද?

Answers:


1986

ඔබගේ යෙදුම සත්කාරකත්වය සඳහා ඔබ IIS භාවිතා කරන්නේ නම්, පෙරනිමි උඩුගත ගොනු ප්‍රමාණය 4MB වේ. එය වැඩි කිරීමට, කරුණාකර ඔබේ 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 GB ට සමාන වේ.)


7
ස්තූතියි සචින් සහ මම <httpRuntime maxRequestLength = "32768" executionTimeout = "180" /> වැනි දෙයක් එකතු
කළෙමි

11
maxAllowedContentLength කිලෝබයිට් නොව බයිට් වලින් විය යුතුය, එබැවින් ලබා දී ඇති උදාහරණ සමාන නොවේ.
මැතිව් ෂාපේ

33
IIS 7.5 සහ VS RC 2012 IIS Express යන දෙකම සමඟ මට මේ දෙකෙන් එකක් සැකසීමට සිදු විය. HttpRuntime එකක් ASP.NET හි උපරිම දිග වින්‍යාස කරන අතර requestLimits IIS හි උපරිම දිග, stackoverflow.com/questions/6327452/… සහ forums.iis.net/t/1169846.aspx
ඩෙස්පර්ටාර්

19
මැක්ස්ඇලෝඩ්කොන්ටෙන්ට් දිග කිලෝබයිට් නොව බයිට් වලින් බව නැවත වරක් පෙන්වා දීම වටී. අගයන් දෙක එකම සංඛ්‍යාවක් නොවිය යුතුය, මන්ද ඒවා එකම මිනුම් ඒකකයක් නොවේ.
පැන්ඩින්කස්

13
ෆෝල්ඩරයේ Web.configඇති එක වෙනුවට ඔබ මෙම සැකසුම ප්‍රධාන Views
තැනට

553

එය මෙහි සඳහන් කර ඇතැයි මම නොසිතමි, නමුත් මෙය ක්‍රියාත්මක කිරීම සඳහා, වෙබ් කොන්ෆිග් හි මෙම අගයන් දෙකම සැපයීමට මට සිදු විය:

තුළ system.web

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

සහ ඇතුළත system.webServer

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

වැදගත් : මෙම අගයන් දෙකම ගැලපිය යුතුය. මෙම අවස්ථාවේදී, මගේ උපරිම උඩුගත කිරීම මෙගාබයිට් 1024 කි.

maxRequestLength හි කිලෝබයිට් 1048576 ක් ඇති අතර maxAllowedContentLength සතුව 1073741824 BYTES ඇත.

එය පැහැදිලිව පෙනෙන බව මම දනිමි, නමුත් එය නොසලකා හැරීම පහසුය.


5
ඕනෑම කෙනෙකුට එය සැලකිලිමත් විය හැකිය: මෙම පිළිතුර IIS-Express (වෙබ්මැට්‍රික්ස් සමඟ asp.net-webpages) සඳහාද හොඳින් ක්‍රියාත්මක වේ
VoidKing

5
ඔව්, මෙය සචින්ගේ පිළිතුර වෙනුවට මට වැඩ කළ පිළිතුරයි. එය අසුරේ මත ද ක්‍රියා කරයි.
ගෞතම් ජයින්

5
මෙය නියත වශයෙන්ම නිවැරදි පිළිතුරයි ... ඇතුළත් කිරීම් දෙකම තිබිය යුතුය. MVC 3 නම්, එය ව්‍යාපෘති මූල web.configගොනුවේ විය හැකිය.
මිගෙල් ඇන්ජලෝ

2
තවත් වැදගත් දෙයක් නම් කාල් සඳහන් කරන 'ution ාතන කාල සීමාව'
මුහම්මද් අමීන්

26
මට මෙය දැනට පවතින රේඛාවක් සමඟ ඒකාබද්ධ කිරීමට සිදු විය: <httpRuntime targetFramework = "4.5" maxRequestLength = "1048576" executionTimeout = "3600" />
කෙන් මැක්

196

මෙම වෙනස ඔබගේ මුළු වෙබ් අඩවියම උඩුගත කිරීම සඳහා භාවිතා කිරීමට බලාපොරොත්තු වන 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>

නියම විසඳුම ස්ථානය ගැන සිතීම. එම්වීසී සමඟ වැඩ කරන විට (ඒ නිසා මාර්ග සමඟ වැඩ කරන විට) ස්ථාන මාර්ගයක් තිබේද?
Luuk Krijnen

1
එය ඔබගේ උඩුගත කිරීමේ ක්‍රියාව සකසා ඇති මාර්ගයට අනුරූප URL ය. මගේ නඩුවේදී, මම පෝරමය පළ කරන උඩුගත කිරීම නම් ක්‍රියාවක් සහිත ලේඛන පාලකයක් ඇත. ඔබගේ නඩුවේ url එක කුමක් වුවත් එය ඔබගේ නඩුව වේ.
නික් ඇල්බ්‍රෙක්ට්

මෙම පිළිතුරට කැමති ඕනෑම කෙනෙකුට මෙය බලන්න .
DontVoteMeDown

2
මචන් ඔයා රොක්. කණගාටුයි, නමුත් මගේ කුඩා ඡන්දය ප්‍රමාණවත් නොවීය.
නිකලස් පීටර්සන්

1
මෙය MVC v5 දක්වා සහ ඇතුළුව WebAPI සමඟ ක්‍රියා කරනු ඇත. ඔබ MVC Core සමඟ ASP.NET Core පහර දුන් පසු, ඔබ Kestrel සඳහා සකස් කළ යුතු විවිධ විකල්ප තිබේ.
නික් ඇල්බ්‍රෙක්ට්

45

යමෙක් මෙම ව්‍යතිරේකය හැසිරවීමට සහ පරිශීලකයාට අර්ථවත් පැහැදිලි කිරීමක් පෙන්වීමට ක්‍රමයක් සොයන්නේ නම් ("ඔබ ගොනුවක් උඩුගත කරන්නේ ඉතා විශාලයි" වැනි දෙයක්):

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

ගොනු ප්‍රමාණ වලංගු කිරීම සහ පරිශීලක-හිතකාමී පණිවිඩය පිටු මට්ටමින් JS හරහා onchangeඋඩුගත කිරීමේ බොත්තම මත සිදුවීමක් භාවිතා කර උඩුගත කළ ගොනු ප්‍රමාණය උපරිම උඩුගත කිරීමේ සීමාව සමඟ සංසන්දනය කළ හැකිය.
ඇල්ෆ්‍රඩ් වොලස්

30

උපරිම ඉල්ලීම් ප්‍රමාණය පෙරනිමියෙන් වේ 4MB (4096 KB)

මෙය මෙහි විස්තර කෙරේ .

මෙම ගැටළුව විසඳන්නේ කෙසේද යන්න ඉහත ලිපියෙන් විස්තර කෙරේ :)


4
සබැඳිය මාව මයික්‍රොසොෆ්ට් ආධාරක මුල් පිටුවට හරවා යවයි
බිෂොප්

1
සමහර විට යමක් වැරදී ඇත. සබැඳිය මෙහි
gofr1

23

ඔබට වින්‍යාස ගොනු යාවත්කාලීන කළ නොහැකි නමුත් ගොනු උඩුගත කිරීම් භාවිතා කරන කේතය පාලනය කරන්න 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"
  />

12

සියලුම පිළිතුරු එකම ස්ථානයක සාරාංශ කිරීමට:

<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 අනුවාදයට සකසන්න.

සටහන්:

  • maxRequestLength සඳහා පෙරනිමි අගය 4096 (4mb) වේ. උපරිම අගය 2,147,483,647 කි
  • maxAllowedContentLength සඳහා පෙරනිමි අගය 30,000,000 (30mb පමණ) වේ. උපරිම අගය 4,294,967,295 කි

වැඩි විස්තර MSDN


8

maxRequestLength (KB හි දිග) මෙන්න ex. මම 1024 (1MB) maxAllowedContentLength (බයිට් වල දිග) ඔබේ උපරිම අවශ්‍යතාව (බයිට් 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

වෙබ් අඩවියේ යෙදුමකට යෑමට ඔබට ඉල්ලීමක් තිබේ නම්, ඔබ root.config මූලයේ maxRequestLength සැකසීමට වග බලා ගන්න. යෙදුම්වල web.config හි ඇති උපරිම අවශ්‍යතාවය නොසලකා හරින බවක් පෙනේ.


මට මෙය කිහිප වතාවක් වැඩි කළ හැකි නම්. මෙය මගේ ජීවිතයේ දවසක් නාස්ති කළා. ඔබට අතථ්‍ය dir උප-යෙදුමක් තිබේ නම්, ඔබ එය කළ යුත්තේ httpRuntime maxRequestLength="###සහ requestLimits maxAllowedContentLengthවෙබ් වින්‍යාසය තුළ මූල මට්ටමේ මිස උප-යෙදුම් මට්ටමින් නොවේ.
nickvans

1

අපගේ වෙබ්.කොන්ෆිග් ගොනුවට බහුවිධ පද්ධති.වෙබ් කොටස් තිබීම නිසා මා පුදුමයට පත් විය: වින්‍යාස මට්ටමින් පද්ධතියට වෙබ් වෙබ් අඩවියට <httpRuntime maxRequestLength = "1048576" /> එකතු කළ විට එය ක්‍රියාත්මක විය.


1

මට C:\Windows\System32\inetsrv\config\applicationHost.configගොනුව සංස්කරණය <requestLimits maxAllowedContentLength="1073741824" />කර අවසානයට එකතු කිරීමට සිදු විය ...

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

කොටස.

අනුව මෙම Microsoft ආධාරක වගන්තිය


ඔබේම ව්‍යාපෘතියකින් web.config මේවා අභිබවා යා යුතුය, එබැවින් වෙනස් කිරීමේ අවශ්‍යතාවය මට නොපෙනේ applicationHost.config.
bvgheluwe

-3

වින්‍යාසගත නොකළ වෙබ් වෙත මට එකතු කළ හැකිය

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

1
මෙම executionTimeoutලක්ෂණයට ඉල්ලා දේ සමග ගෑවිලාවත් නැත, සහ වත් කරන්නේ compilationටැගය.
මතියස් ලිකෙගාඩ් ලොරෙන්සන්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.