it-swarm.com.de

Wie erhöhe ich die maximale Upload-Dateigröße in ASP.NET?

Ich habe ein Formular, das einen Dateiupload in ASP.NET ausschließt. Ich muss die maximale Upload-Größe auf über die Standardeinstellung von 4 MB erhöhen.

Ich habe an bestimmten Stellen unter msdn den folgenden Code gefunden.

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

Keine der Referenzen beschreibt tatsächlich, wie man es benutzt, und ich habe einige Dinge ohne Erfolg versucht. Ich möchte dieses Attribut nur für bestimmte Seiten ändern, die zum Hochladen von Dateien auffordern.

Ist das der richtige Weg? Und wie verwende ich das?

223
Eddie

Diese Einstellung wird in Ihre web.config-Datei übernommen. Es wirkt sich jedoch auf die gesamte Anwendung aus ... Ich glaube nicht, dass Sie es pro Seite festlegen können.

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

"xxx" ist in KB. Der Standardwert ist 4096 (= 4 MB).

387

Für IIS 7+ sowie das Hinzufügen der Einstellung httpRuntime maxRequestLength müssen Sie außerdem Folgendes hinzufügen:

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="52428800" /> <!--50MB-->
      </requestFiltering>
    </security>
  </system.webServer>

Oder in IIS (7):

  • Wählen Sie die Website aus, für die Sie das Hochladen großer Dateien aktivieren möchten.
  • Doppelklicken Sie im Hauptfenster auf "Filter anfordern".
  • Wählen Sie "Funktionseinstellungen bearbeiten"
  • Ändern Sie die "maximal zulässige Inhaltslänge (Byte)"
170
4imble

Um die Größenbeschränkung für das Hochladen von Dateien zu erhöhen, haben wir zwei Möglichkeiten

1. IIS6 oder niedriger

In ASP.Net beträgt die maximale Größe einer auf den Server hochzuladenden Datei standardmäßig 4 MB . Dieser Wert kann durch Ändern des Attributs maxRequestLength in web.config erhöht werden.

Beachten Sie: maxRequestLenght ist in KB

Beispiel : Wenn Sie Uploads auf 15 MB beschränken möchten, setzen Sie maxRequestLength auf "15360" (15 x 1024).

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

2. IIS7 oder höher

Eine etwas andere Methode zum Hochladen von Dateien.IIS7 hat das Anforderungsfilterungsmodul eingeführt . Das vor ASP.Net.Means ausgeführt wird, wie die Pipeline funktioniert, ist das IIS value ( maxAllowedContentLength ) hat zuerst den ASP.NET-Wert ( maxRequestLength überprüft ) ist aktiviert. Das Attribut maxAllowedContentLength ist standardmäßig 28,61 MB . Dieser Wert kann erhöht werden, indem beide Attribute in demselben Attribut geändert werden web.config.

Beachten Sie: maxAllowedContentLength ist in Bytes

Beispiel : Wenn Sie Uploads auf 15 MB beschränken möchten, setzen Sie maxRequestLength auf "15360" und maxAllowedContentLength auf "15728640" (15 x 1024 x 1024).

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

<system.webServer>              
   <security> 
      <requestFiltering> 
         <!-- maxAllowedContentLength, for IIS, in bytes --> 
         <requestLimits maxAllowedContentLength="15728640" ></requestLimits>
      </requestFiltering> 
   </security>
</system.webServer>

MSDN-Referenzlink : https://msdn.Microsoft.com/en-us/library/e1f13641 (VS.80) .aspx

70
Malik Khalil

Ich glaube, diese Zeile in der web.config legt die maximale Upload-Größe fest:

<system.web>

        <httpRuntime maxRequestLength="600000"/>
</system.web>
17
ben

für eine maximale Größe von 2 GB in Ihrer Anwendung "web.config":

<system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483647" />
    </requestFiltering>
  </security>
</system.webServer>
12
cangosta

Wenn Windows 2003/IIS 6.0), überprüfen Sie AspMaxRequestEntityAllowed = "204800" in der Datei metabase.xml in Ordner C:\windows\system32\inetsrv \

Der Standardwert von "204800" (~ 205 KB) ist meiner Meinung nach für die meisten Benutzer zu niedrig. Ändern Sie einfach den Wert auf den Wert, der Ihrer Meinung nach max.

Wenn Sie die Datei nach der Bearbeitung nicht speichern können, müssen Sie entweder den ISS-Server stoppen oder den Server aktivieren, damit die Datei bearbeitet werden kann:

alt text
(Quelle: itmaskinen.se )

Edit: Ich habe die Frage nicht richtig gelesen (wie man die maxrequest in webconfig setzt). Aber diese Information kann für andere Leute von Interesse sein, viele Leute, die ihre Seiten von win2000-server auf win2003 verlagern und eine funktionierende Upload-Funktion hatten und plötzlich die Request.BinaryRead Failed Fehler wird davon Gebrauch machen. Also lasse ich die Antwort hier.

7
Stefan

Ich habe das gleiche Problem in einem Windows 2008 IIS Server, ich habe das Problem beim Hinzufügen dieser Konfiguration in der web.config behoben:

<system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="102400" 
     appRequestQueueLimit="100" requestValidationMode="2.0"
     requestLengthDiskThreshold="10024000"/>
</system.web>

Der Wert requestLengthDiskThreshold beträgt standardmäßig 80000 Byte, ist also für meine Anwendung zu klein. requestLengthDiskThreshold wird in Bytes gemessen und maxRequestLength in KB ausgedrückt.

Das Problem liegt vor, wenn die Anwendung ein System.Web.UI.HtmlControls.HtmlInputFile Serverkomponente. Das Erhöhen des requestLengthDiskThreshold ist erforderlich, um dieses Problem zu beheben.

4
Max Zerbini

Wenn Sie Framework 4.6 verwenden

<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" maxRequestLength="10485760"  />
3
mbadeveloper

Ich weiß, dass es eine alte Frage ist.

Das müssen Sie also tun:

Fügen Sie in Ihrer web.config-Datei Folgendes hinzu:

    <!-- 3GB Files / in kilobyte (3072*1024) -->
    <httpRuntime targetFramework="4.5" maxRequestLength="3145728"/>

und das unter

<security>
    <requestFiltering>

      <!-- 3GB Files / in byte (3072*1024*1024) -->
      <requestLimits maxAllowedContentLength="3221225472" />

    </requestFiltering>
</security>

Wie das geht, sehen Sie im Kommentar. In einem müssen Sie die Sie in Bytes und in dem anderen in Kilobytes haben. Ich hoffe, das hilft.

3
damir

Sie können diesen Codeblock in die web.config-Datei Ihrer Anwendung schreiben.

<httpRuntime maxRequestLength="2048576000" />
<sessionState timeout="3600"  />

Indem Sie diesen Code schreiben, können Sie eine größere Datei als jetzt hochladen

2
user3683243

Die maximale Dateigröße kann auf einen einzelnen MVC-Controller oder sogar auf eine Aktion beschränkt werden.
Das Tag web.config <location> kann dafür verwendet werden:

<location path="YourAreaName/YourControllerName>/YourActionName>">
  <system.web>
    <!-- 15MB maxRequestLength for asp.net, in KB 15360 -->
    <httpRuntime maxRequestLength="15360" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 15MB maxAllowedContentLength, for IIS, in bytes 15728640 -->
        <requestLimits maxAllowedContentLength="15728640" />
      </requestFiltering>
    </security>
  </system.webServer>
</location>

Sie können diese Einträge auch in der eigenen web.config des Bereichs hinzufügen.

1
Martin

Wenn Sie Sharepoint verwenden, sollten Sie die maximale Größe auch mit den Verwaltungstools konfigurieren: kb92508

0
Quiz

Wenn es auf Ihrem lokalen Computer funktioniert und nach der Bereitstellung in IIS (ich habe Windows Server 2008 R2 verwendet) nicht funktioniert, habe ich eine Lösung.

Öffnen IIS (inetmgr) Gehen Sie zu Ihrer Website. Gehen Sie rechts zu Inhalt (Anforderungsfilterung). Gehen Sie zu Funktionseinstellungen bearbeiten Weitere Hilfe erhalten Sie von folgendem Thread http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits

0
Rahat Ali

Ich habe einen Blog-Beitrag zum Thema Erhöhen der Dateigröße für die Steuerung des ASP-Uploads .

Von der Post:

Standardmäßig können mit dem FileUpload-Steuerelement maximal 4 MB Dateien hochgeladen werden, und das Ausführungszeitlimit beträgt 110 Sekunden. Diese Eigenschaften können im httpRuntime-Abschnitt der Datei web.config geändert werden. Die Eigenschaft maxRequestLength bestimmt die maximale Dateigröße, die hochgeladen werden kann. Die executionTimeout-Eigenschaft bestimmt die maximale Ausführungszeit.

0
sk1900