Αυτήν τη στιγμή είστε εκτός σύνδεσης, σε αναμονή για επανασύνδεση στο Internet

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

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: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 - Τελευταία αναθεώρηση: 12/19/2010 17:27:00 - Αναθεώρηση: 2.0

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbproductlink kbconfig kbprb kbservercontrols kbmt KB295626 KbMtel
Σχόλια
me = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);