Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20025|Antwort: 0

[ASP.NET] ASP.NET Parameterpass, Dauerbegrenzungen und Nutzungsvorsichtsmaßnahmen.

[Link kopieren]
Veröffentlicht am 08.03.2018 10:18:07 | | | |
1. Ursachen des Problems
Im Anhang "Post-Release-Probleme" der Bugstatistiken nach der Veröffentlichung eines Projekts gibt es:   



Als Erfahrungsakkumulation werden diese Probleme, Ursachen und Lösungen in die Checkliste aufgenommen und dann:
Die erste Frage: Ist die obere Grenze des URL-Parameters eine genaue Referenz? Was ist die Obergrenze?
Zweite Frage: Warum gibt es eine Datenbegrenzung bei POST? Liegt das Limit bei 128.000?  
2. Problemanalyse
1. Der erste:
1) Es gibt keine obere Parametergrenze in der URL. Das Problem ist tatsächlich, dass IE eine Längenbegrenzung für URLs hat.
2) Die HTTP-Protokollspezifikation begrenzt auch nicht die Länge der URL. Diese Begrenzung ist eine Beschränkung, die von einem bestimmten Browser und Server auferlegt wird. IEs Grenze für die URL-Länge beträgt 2083 Bytes (2K+35). Bei anderen Browsern wie Netscape, Firefox usw. gibt es keine theoretische Längenbegrenzung, und das Limit hängt von der Unterstützung des Betriebssystems ab. [Ref. 1]
3) "Variable-Length-Parameter werden über URL übermittelt" bedeutet tatsächlich, dass die GET-Methode beim Einreichen des Formulars verwendet wird, nicht die POST-Methode. Was diesen potenziellen Fehler verursacht, ist die Verwendung der GET-Methode zur Einreichung von Formulardaten. Weil die GET-Methode die Daten in der URL an den Server zur Verarbeitung weiterleitet.
4) Beachten Sie, dass dieses Limit die gesamte URL-Länge ist, nicht nur die Datenlänge Ihres Parameterwerts.
5) Da dies IEs URL-Länge begrenzt, haben sowohl die GET-Methode als auch die POST-Methode diese Begrenzung.
(Bitte siehe das zugehörige Dokument für Details zu den GET- und POST-Methoden des FORMULARS [Ref. 2])  
Empfehlungen:
1) Verstehen Sie die Umgebung, in der sich die Anwendung befindet, wie z. B. die Browser- und Serverumgebung der Webanwendung, und verstehen Sie deren spezifische Parameterbeschränkungen.
2) Die POST-Methode so weit wie möglich verwenden, um komplexe Daten einzureichen. Hinweis: Wenn FORM das Methodenattribut nicht schreibt, ist standardmäßig die Verwendung der GET-Methode.
Fazit (schreiben Sie zur Checkliste):
Wenn Sie Daten mit der GET-Methode einreichen, müssen Sie die URL-Längenbegrenzung von 2083 Bytes in der IE-Umgebung berücksichtigen.
2. Der zweite:
1) Theoretisch hat POST keine Größenbegrenzung. Auch die HTTP-Protokollspezifikation hat keine Größenbegrenzung.
2) "Es gibt eine Größenbegrenzung von 128K für POST-Daten" ist nicht genau genug, es gibt keine Begrenzung für POST-Daten, und die Rechenleistung des Prozessors des Servers spielt eine limitierende Rolle.
3) Für ASP-Programme gibt es eine Datenlängenbegrenzung von 100.000, wenn das Request-Objekt jedes Formularfeld verarbeitet. Aber mit Request.BinaryRead gibt es keine solche Beschränkung. Für Lösungen, die die Verarbeitung von mehr als 100.000 Formular-Domänendaten erfordern, siehe bitte [Ref. 3] unten.
4) Im weiteren Sinne hat Microsoft für IIS 6.0 die Sicherheitsbeschränkungen erhöht [Ref. 4]. Wir müssen auch auf Folgendes achten:
   IIS 6.0 hat standardmäßig maximal 200 KB ASP POST-Daten, und die Grenze beträgt 100 KB pro Formularfeld.
    Die Standardgröße von IIS 6.0-Upload-Dateien beträgt 4 MB.
    IIS 6.0 hat standardmäßig einen maximalen Request-Header von 16 KB.
    Diese Einschränkungen waren vor IIS 6.0 nicht verfügbar.
Empfehlungen:
1) Die Kenntnis der Standardeinstellungen der laufenden Umgebung hilft Ihnen, Probleme zu entwerfen und schnell zu lösen.
2) Die Serverversion sollte in Betracht gezogen werden. Jede IIS-Version hat unterschiedliche Standardeinstellungen für diese Parameter, daher sollten Sie bei Bedarf Informationen suchen und eine Vergleichstabelle erstellen. Auf diese Weise gibt es eine Referenz für Entwicklung und Test.
3) Diese Einschränkungen von IIS 6.0 sind eigentlich nur die Standardeinstellungen, und du kannst sie in der eigentlichen Anwendungsumgebung anpassen.
    In WINNT/system32/inetsrv/MetaBase.xml lautet die Standarddefinition:
        AspBufferingLimit="4194304" entspricht der maximalen Größe der hochgeladenen Datei
        AspMaxRequestEntityAllowed="204800" entspricht der maximalen Datenmenge in POST
        ...
Fazit (schreiben Sie zur Checkliste):
Bei der Verwendung von ASP muss man bedenken, dass das POST-Formular ein Limit von 100 KB pro Feld für die allgemeine Leseverarbeitung hat. Überlege, ob du Request.Binary verwenden sollst.





Vorhergehend:asp.net mvc stellt den Formularbeitrag so ein, dass HTML eingereicht werden kann
Nächster:System.Linq.Dynamisch
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com