PRB: Δεν είναι δυνατή η αποστολή μεγάλα αρχεία κατά τη χρήση του στοιχείου ελέγχου του διακομιστή HtmlInputFile

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 295626 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

Όταν προσπαθείτε να χρησιμοποιήσετε τοHtmlInputFileστοιχείο ελέγχου για να αποστείλετε ένα μεγάλο αρχείο, το αρχείο ενδέχεται να αποσταλούν δεν.

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή η προεπιλεγμένη τιμή για τηmaxRequestLengthη παράμετρος στο στο<httpruntime></httpruntime>η ενότητα του αρχείου Machine.config είναι 4096 (4 megabyte). Ως αποτέλεσμα, αρχεία που είναι μεγαλύτερα από αυτήν την τιμή δεν αποστέλλονται από προεπιλογή.

Προτεινόμενη αντιμετώπιση

Για την επίλυση αυτού του ζητήματος, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:
  • Στο αρχείο Machine.config, αλλάξτε τοmaxRequestLengthχαρακτηριστικό με το<httpruntime></httpruntime>η ενότητα ρύθμισης παραμέτρων σε μια μεγαλύτερη τιμή. Η αλλαγή αυτή επηρεάζει ολόκληρο τον υπολογιστή.
  • Στο αρχείο Web.config, αντικατάσταση της τιμήςmaxRequestLengthγια την εφαρμογή. Για παράδειγμα, η ακόλουθη καταχώρηση στο Web.config επιτρέπει αρχεία που είναι μικρότερο ή ίσο με 8 megabyte (MB) για να αποσταλούν:
    <httpRuntime maxRequestLength="8192" />
    					

Περισσότερες πληροφορίες

Από προεπιλογή, η τιμή αυτή περιορίζεται σε 4 MB, για να περιορίσετε τις πιθανές επιθέσεις άρνησης υπηρεσίας.

Όταν τοmaxRequestLengthχαρακτηριστικό έχει οριστεί στο αρχείο Machine.config και στη συνέχεια, καταχωρείται μια αίτηση (για παράδειγμα, ένα αρχείο αποστολή) που υπερβαίνει την τιμή τηςmaxRequestLength, δεν είναι δυνατή η εμφάνιση μιας προσαρμοσμένης σελίδας σφάλματος. Αντίθετα, ο Microsoft Internet Explorer θα εμφανίσει ένα μήνυμα λάθους "Δεν είναι δυνατό να βρει το διακομιστή ή DNS".

Θεωρητικά, το μέγιστο μέγεθος αποστολής είναι αρκετά μεγάλη. Ωστόσο, λόγω του ASP.NET παρακολούθηση της εύρυθμης λειτουργίας, δεν είναι δυνατό να αποστείλετε πολύ μεγάλα αρχεία στο ASP.NET. Η Διαδικασία εργασίας ASP.NET έχει χώρο εικονικών διευθύνσεων των 2 gigabyte (GB). Ωστόσο, η διαδικασία εργασίας ASP.NET χρησιμοποιεί μόνο λίγο περισσότερο από 1 GB εξαιτίας της εύρυθμης λειτουργίας παρακολούθησης και μνήμη κατακερματισμού.

Κατά τη διαδικασία αποστολής, το ASP.NET φορτώνει ολόκληρο το αρχείο στη μνήμη πριν ο χρήστης να αποθηκεύσετε το αρχείο στο δίσκο. Επομένως, η διαδικασία μπορεί να ανακύκλωση εξαιτίας τηςmemoryLimitχαρακτηριστικό με τοprocessModelη ετικέτα του αρχείου Machine.config. Για ναmemoryLimitτο χαρακτηριστικό Καθορίζει το ποσοστό της φυσικής μνήμης που επεξεργάζονται το βοηθητικό ASP.NET μπορεί να εξαντλήσει πριν η διεργασία ανακυκλώνεται αυτόματα. Ανακύκλωση εμποδίζει "διαρροές" μνήμης να προκαλεί ASP.NET για να διακοπεί η λειτουργία του ή να σταματήσει να ανταποκρίνεται.

Επιπλέον, υπάρχουν και άλλοι παράγοντες παίζουν ρόλο με το μέγιστο μέγεθος που μπορεί να αποσταλεί. Στους παράγοντες αυτούς περιλαμβάνεται η διαθέσιμη μνήμη, χώρος στον σκληρό δίσκο, ταχύτητα επεξεργαστή και τρέχουσα κίνηση στο δίκτυο. Με κανονική κίνηση την αποστολή αρχείων, η Microsoft συνιστά να χρησιμοποιείτε ένα μέγιστο μέγεθος αρχείου κυμαίνεται από 10 έως 20 megabytes (MB). Εάν σπάνια αποστολή αρχείων, το μέγιστο μέγεθος αρχείου μπορεί να είναι 100 MB.

ΣΗΜΕΙΩΣΗΜπορείτε να αποστείλετε αρχεία που είναι μεγαλύτερα από 100 MB στο ASP.NET. Ωστόσο, η Microsoft συνιστά να ακολουθήσετε τα μεγέθη αποστολής αρχείου μέγιστο που αναφέρονται σε αυτό το άρθρο. Για να προσδιορίσετε πιο ακριβή μεγέθη των αρχείων, εκτελέστε καταπόνησης δοκιμής σε υπολογιστές που είναι παρόμοια με αυτά που θα χρησιμοποιηθεί στην παραγωγή.

Εάν συναντήσετε όρια μεγέθους αρχείου κατά τη διαδικασία αποστολής αρχείων, ενδέχεται να παρατηρήσετε τα ακόλουθα μηνύματα λάθους:
  • Δεν είναι δυνατή η προβολή της σελίδας.
  • Εφαρμογή διακομιστή είναι μη διαθέσιμη
    Στο αρχείο καταγραφής συμβάντων, το μήνυμα λάθους θα είναι παρόμοιο με το ακόλουθο:

    η εφαρμογή aspnet_wp.exe (PID:PIDNumber) ανακυκλώθηκε διότι η κατανάλωση μνήμης ξεπεράσει τοSizeLimitMB)Ποσοστόποσοστό διαθέσιμη μνήμη RAM).

  • Τύπου System.OutOfMemoryException δημιουργήθηκε εξαίρεση.
Μπορείτε επίσης να βρείτε ότι οι αποστολές γίνονται πολύ αργά. Εάν μπορείτε να παρακολουθήσετε τη διαδικασία Aspnet_wp.exe στη Διαχείριση εργασιών των Windows, θα παρατηρήσετε ότι η διαφορά μνήμης αλλάζει από 64 KB κάθε 1 ή 2 δευτερόλεπτα. Ανάλογα με το μέγεθος του αρχείου, αυτή η καθυστέρηση μπορεί να προκαλέσει η διαδικασία εργασίας ASP.NET για την ανακύκλωση εξαιτίας ενός σφάλματος responseDeadlock.

Ιδιότητες

Αναγν. άρθρου: 295626 - Τελευταία αναθεώρηση: Κυριακή, 19 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Λέξεις-κλειδιά: 
kbproductlink kbconfig kbprb kbservercontrols kbmt KB295626 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:295626

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com