Ενδέχεται να αντιμετωπίσετε χαμηλές επιδόσεις του Web όταν χρησιμοποιείτε τον Internet Explorer 6 για να προσπαθήσετε να αποκτήσετε πρόσβαση σε μια εφαρμογή Web που φιλοξενείται στον Internet Information Services 6.0

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο:
  • Μπορείτε να χρησιμοποιήσετε τα Windows ο ενσωματωμένος έλεγχος ταυτότητας σε ένα περιβάλλον εφαρμογών Web Microsoft Internet Information Services 6.0 (IIS 6.0).
  • Μπορείτε να χρησιμοποιήσετε Microsoft Internet Explorer 6 για να αποκτήσετε πρόσβαση σε μια εφαρμογή Web που φιλοξενείται στις υπηρεσίες IIS 6.0.
Σε αυτό το σενάριο, ενδέχεται να αντιμετωπίσετε χαμηλές επιδόσεις εφαρμογών Web.

Σημείωση Το πρόβλημα δεν παρουσιάζεται εάν ο ανώνυμος έλεγχος ταυτότητας χρησιμοποιείται ως το πρωτόκολλο ελέγχου ταυτότητας. Επίσης, αυτό το ζήτημα δεν παρουσιάζεται αν το πρόγραμμα περιήγησης του υπολογιστή-πελάτη είναι ένα πρόγραμμα περιήγησης εκτός του Internet Explorer 6, όπως Mozilla Firefox.

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή το πρόγραμμα-πελάτη του Internet Explorer 6 τακτικά επαναφέρει τις συνδέσεις TCP.

Εάν μπορείτε να αναλύσετε ένα ίχνος δικτύου που καταγράφεται κατά τη διάρκεια της επικοινωνίας κακή εκτέλεση μεταξύ του υπολογιστή-πελάτη και του διακομιστή, το ίχνος δικτύου δείχνει ότι η επαναφορά TCP θα παρουσιαστεί μετά το πρόγραμμα-πελάτης λαμβάνει μια απόκριση 200 για τον πόρο που ζήτησε ο υπολογιστής-πελάτης. Ο υπολογιστής-πελάτης κάνει τις αιτήσεις GET με μια κεφαλίδα ETag HTTP και τιμή. Όταν ο διακομιστής που εκτελεί τις υπηρεσίες IIS 6.0 λαμβάνει την αίτηση, συγκρίνει την τιμή ETag και εντοπίζει ότι η τιμή ETag συμφωνεί με το ζητούμενο αρχείο τρέχουσα τιμή, εκτός από την αλλαγή του αριθμού.

Σημείωση Κεφαλίδες ETag εμφανίζεται με την εξής μορφή:

Filetimestamp:ChangeNumber

Για παράδειγμα, το πρόγραμμα-πελάτη του Internet Explorer θα στείλει μια αίτηση με τιμή ETag 0222d5bffcbc41:301a και, στη συνέχεια, ο διακομιστής θα αποστέλλει μια απόκριση HTTP 200 με τιμή ETag 0222d5bffcbc41:3246.

Ο αριθμός Filetimestamp στην αίτηση είναι ο ίδιος αριθμός που θεωρεί ως την τρέχουσα τιμή για τον πόρο αίτησης IIS 6.0. Ωστόσο, επειδή ο αριθμός ChangeNumber στην αίτηση είναι διαφορετική, οι υπηρεσίες IIS 6.0 στέλνει την τρέχουσα έκδοση του αρχείου και όχι λέγοντας Internet Explorer για να εξυπηρετεί τη δική του προσωρινά αποθηκευμένο αντίγραφο. Δεν υπάρχει συγκεκριμένο κώδικα του Internet Explorer που συγκρίνει την Filetimestamp σε 200 απάντηση με το
Χρονική σήμανση του αντιγράφου προσωρινά τοπικά. Η σύνδεση έχει επαναφερθεί εάν έχουν τον ίδιο αριθμό. Αυτό συμβαίνει επειδή αναμένει το πρόγραμμα-πελάτη του Internet Explorer για να λάβετε μια αναφορά κατάστασης 304 εάν το περιεχόμενο είναι το ίδιο.


Με άλλα λόγια, οι υπηρεσίες IIS 6.0 στέλνει απάντηση 200 επειδή λαμβάνει υπόψη τους αριθμούς διαφορετική αλλαγή να σημαίνουν ότι ο πόρος που ζητήθηκε από τον υπολογιστή-πελάτη και από το πρόγραμμα-πελάτης προϋπάρχουσα έκδοση αυτού του πόρου που βρίσκεται στη μνήμη cache του προγράμματος περιήγησης δεν είναι οι ίδιες εκδόσεις. Ωστόσο, ο Internet Explorer θεωρεί τους να είναι οι ίδιες εκδόσεις, επειδή το Filetimestamp είναι το ίδιο. Επιπλέον, ο Internet Explorer θεωρεί ότι λαμβάνει την απάντηση 200 κατά λάθος. Σε αυτό το σενάριο, ο Internet Explorer επαναφέρει τη σύνδεση TCP.

Εναλλακτικός τρόπος αντιμετώπισης

Εάν χρησιμοποιείτε έναν υπολογιστή που βασίζεται σε Microsoft Windows Server 2003

Για να επιλύσετε αυτό το ζήτημα, συνιστούμε να έχετε σκληρό κωδικό τον αριθμό αλλαγών στο διακομιστή Web και να συγχρονίσετε την έκδοση του αρχείου για όλους τους υπολογιστές πελάτες του Internet Explorer. Όλοι οι πελάτες του Internet Explorer θα έχετε εκδόσεις όλων των διαφορετικών αρχείων που απαιτούνται για την εφαρμογή. Θα πρέπει να βεβαιωθείτε ότι ο διακομιστής και όλοι οι υπολογιστές-πελάτες είναι συγχρονισμένες.

Σημείωση Εάν εκτελείτε σε ένα περιβάλλον συμπλέγματος Web με IIS 6.0, θα πρέπει να σκληρό κωδικό τον ίδιο αριθμό αλλαγών για όλους τους διακομιστές που εκτελούν τις υπηρεσίες IIS 6.0 στο σύμπλεγμα.


Για να συγχρονίσετε τις αριθμητικές τιμές αλλαγή μεταξύ των υπολογιστών-πελατών και του διακομιστή, ακολουθήστε τα εξής βήματα.
  1. Με μη αυτόματο τρόπο σκληρό κωδικό η τιμή ETag της μετα-βάσης των υπηρεσιών IIS 6.0

    Διατίθεται η δυνατότητα να τροποποιήσετε τον αριθμό αλλαγών ETag των IIS 6.0 στον Windows Server 2003 Service Pack 1 (SP1).


    Σημείωση Όταν αλλάζετε την τιμή ETag και πρέπει να εγκαταστήσετε μια επείγουσα επιδιόρθωση για να διορθώσετε αυτό το πρόβλημα, ενδέχεται να αντιμετωπίσετε ένα πρόβλημα. Για περισσότερες πληροφορίες σχετικά με την επείγουσα επιδιόρθωση, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

    900245 η τιμή του πεδίου ETAG ενημερώνεται κατά την τροποποίηση μιας ιδιότητας μετα-βάσης των υπηρεσιών IIS 6.0

    Μετά την εγκατάσταση της επείγουσας επιδιόρθωσης, μπορείτε να κωδικοποιήσετε με μη αυτόματο τρόπο σκληρά τον αριθμό αλλαγών ETag. Ωστόσο, η ρύθμιση για τον αριθμό αλλαγών ETag δεν εκτίθεται στο χώρο ονομάτων του Active Directory Service Interfaces (ADSI). Επομένως, πρέπει να χρησιμοποιήσετε το εργαλείο Explorer μετα-βάσης για να ορίσετε την τιμή με αναγνωριστικό ιδιότητας. Για να κάνετε λήψη και εγκατάσταση του Explorer μετα-βάσης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:Σημείωση Εξερεύνηση μετα-βάσης περιλαμβάνεται στο resource kit των υπηρεσιών IIS 6.0.

    Για να καθορίσετε με μη αυτόματο τρόπο τον προγραμματισμό το ETag αλλαγή αριθμού, ακολουθήστε τα εξής βήματα:
    1. Ανοίξτε την Εξερεύνηση μετα-βάσης, αναπτύξτε το στοιχείο LM στο αριστερό τμήμα του παραθύρου και στη συνέχεια αναπτύξτε το W3SVC.
    2. Κάντε διπλό κλικ την εγγραφή ID 2039 στο δεξιό τμήμα του παραθύρου. Εάν δεν υπάρχει στην εγγραφή ID 2039, πρέπει να την δημιουργήσετε. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
      1. Κάντε δεξιό κλικ στον κόμβο W3svc στην Εξερεύνηση μετα-βάσης, επιλέξτε Δημιουργία νέουκαι, στη συνέχεια, κάντε κλικ στην επιλογή τιμή DWORD.
      2. Ορίστε το αναγνωριστικό του το νέο DWORD σε 2039.
      3. Ορίστε την τιμή από το νέα DWORD σε 0.
    3. Πληκτρολογήστε 0 στο πλαίσιο τιμή .

      Σημείωση Ο αριθμός που πληκτρολογείτε στο πλαίσιο τιμή πρέπει να είναι από 0 έως 4294967295. Επιπλέον, όλοι οι διακομιστές του συμπλέγματος πρέπει να έχει τον ίδιο αριθμό στο πλαίσιο τιμή . Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
    4. Κάντε κλικ στο κουμπί εφαρμογή, και στη συνέχεια κάντε κλικ στο κουμπί OK.
    Σημείωση Εάν εκτελείτε IIS 6.0 διακομιστές σε ένα περιβάλλον συμπλέγματος Web με IIS 6.0, επαναλάβετε τα βήματα 1a έως 1d σε όλους τους διακομιστές των υπηρεσιών IIS 6.0 στο σύμπλεγμα. Βεβαιωθείτε ότι προσθέτετε το ίδιο αλλαγή αριθμητική τιμή σε όλους τους διακομιστές.
  2. Εκκαθάριση της μνήμης cache προγράμματος περιήγησης του υπολογιστή-πελάτη στον Internet Explorer

    Εάν υπάρχουν πολλά προγράμματα περιήγησης-πελάτες με μη αυτόματο τρόπο εκκαθάρισης της μνήμης cache, μπορείτε να επιλέξετε Ενεργοποίηση λήξης περιεχομένου στις υπηρεσίες IIS 6.0 και στη συνέχεια να καθορίσετε ότι το περιεχόμενο λήγει αμέσως. Σε αυτό το σενάριο, πρέπει να αφήσετε Ενεργοποίηση λήξης περιεχομένου ενεργοποιημένη για μόνο εφόσον απαιτείται για όλους τους υπολογιστές-πελάτες έχουν νωπών περιεχόμενο. Στη συνέχεια, θα πρέπει να απενεργοποιήσετε την Ενεργοποίηση λήξης περιεχομένου για να δώσετε σε μια ευκαιρία για να προσφέρει ξανά προσωρινά αποθηκευμένο περιεχόμενο του Internet Explorer. Δυνατότητα λήξης του περιεχομένου, ακολουθήστε τα εξής βήματα:
    1. Ανοίξτε τις υπηρεσίες Internet Information Services.
    2. Αναπτύξτε το στοιχείο LocalMachine στο αριστερό τμήμα του παραθύρου και, στη συνέχεια, κάντε κλικ στο κουμπί τοποθεσίες Web.
    3. Κάντε δεξιό κλικ σε τοποθεσίες Webκαι, στη συνέχεια, κάντε κλικ στο κουμπί Ιδιότητες.
    4. Στην καρτέλα Κεφαλίδες HTTP , κάντε κλικ για να επιλέξετε το πλαίσιο ελέγχου Δυνατότητα λήξης του περιεχομένου και, στη συνέχεια, κάντε κλικ στην επιλογή Άμεση .
    5. Διακόψτε και ξεκινήστε πάλι όλες τις υπηρεσίες IIS 6.0.
    Σημείωση Ένας υπολογιστής-πελάτης ενδέχεται να πρέπει να κάνετε δύο αιτήσεις για έναν πόρο, μετά την επιλογή του πλαισίου ελέγχου Δυνατότητα λήξης του περιεχομένου είναι ενεργοποιημένη για την ενημέρωση της μνήμης cache του Internet Explorer.

Εάν δεν χρησιμοποιείτε έναν υπολογιστή που βασίζεται σε Windows Server 2003

Για να επιλύσετε αυτό το ζήτημα, ενεργοποιήστε την
Επιλογή Δυνατότητα λήξης του περιεχομένου στις υπηρεσίες IIS 6.0 χρησιμοποιώντας τη διαδικασία που περιγράφεται στην ενότητα "Απαλοιφή της μνήμης cache του προγράμματος περιήγησης υπολογιστή-πελάτη του Internet Explorer" και να την αφήσετε ενεργοποιημένη. Επιπλέον, απενεργοποιήστε την προσωρινή αποθήκευση στον Internet Explorer ή ρύθμιση cache κεφαλίδων ελέγχου στην εφαρμογή Web. Για περισσότερες πληροφορίες σχετικά με τον τρόπο για να αποτρέψετε την προσωρινή αποθήκευση για το Web, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

311006 Τρόπος αποτροπής Web προσωρινής αποθήκευσης στα Windows 2000

Κατάσταση

Windows Internet Explorer 7 έχει τροποποιηθεί για το σωστό χειρισμό τον αριθμό αλλαγών ETag σύμφωνα με το RFC 2616. Ωστόσο, εάν αλλάξει ο αριθμός ETag, Windows Internet Explorer 7 θα κάνει λήψη του πλήρους φακέλου αντί για ακύρωση της σύνδεσης. Αυτή η συμπεριφορά μπορεί να επιβραδύνει τις επιδόσεις του Internet Explorer 7 σε σύγκριση με το Internet Explorer 6.

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

Εάν μπορείτε να αναλύσετε ένα ίχνος εποπτείας δικτύου που καταγράφεται στον υπολογιστή-πελάτη ή στο διακομιστή και η ανίχνευση συμμετέχει στο σενάριο επιδόσεων, μπορείτε να δείτε την ακόλουθη σειρά:
  1. Ο υπολογιστής-πελάτης στέλνει την αίτηση GET στο διακομιστή που εκτελεί τις υπηρεσίες IIS 6.0 και η αίτηση περιλαμβάνει μια κεφαλίδα If-None-Match με ένα Filetimestamp: η τιμήChangeNumber . Αυτό το αίτημα μοιάζει με το ακόλουθο:
    HTTP: GET Request from ClientHTTP: Request Method =GET
    HTTP: Uniform Resource Identifier =/MARRS/webService.htc
    HTTP: Protocol Version =HTTP/1.1
    HTTP: Accept = */*
    HTTP: Accept-Encoding =gzip, deflate
    HTTP: If-Modified-Since =Tue, 16 Nov 2004 17:11:48 GMT
    HTTP: If-None-Match ="0222d5bffcbc41:301a"
    HTTP: User-Agent =Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET
    CLR 1
    HTTP: Host =nnoma-wwapp02m
    HTTP: Connection =Keep-Alive
    HTTP: Authorization =Negotiate
    TlRMTVNTUAADAAAAGAAYAG4AAAAKAQoBhgAAAAoACgBIAAAAEgASA
    HTTP: Cookie =ASP.NET_SessionId=uqnwgpygpf0dh2iwysznat55

    Σημείωση Ορισμένες από τις μεταβλητές HTTP σε αυτά τα παραδείγματα μπορεί να διαφέρουν στο περιβάλλον σας.
  2. Ο διακομιστής λαμβάνει την αίτηση και αποστέλλει μια απόκριση 200 μαζί με τα δεδομένα που ζητήθηκαν. Επειδή το πρόγραμμα-πελάτης αποστείλει την κεφαλίδα If-None-Match, IIS 6.0 πρέπει να περιλαμβάνει μια κεφαλίδα απόκρισης ETag και τιμή κεφαλίδας στην απάντησή. Αυτή η απόκριση παρόμοια με την ακόλουθη:
    HTTP: Response to Client; HTTP/1.1; Status Code = 200 - OKHTTP: Protocol Version =HTTP/1.1
    HTTP: Status Code = OK
    HTTP: Reason =OK
    HTTP: Content-Length =51622
    HTTP: Content-Type =text/x-component
    HTTP: Last-Modified =Tue, 16 Nov 2004 17:11:48 GMT
    HTTP: Accept-Ranges =bytes
    HTTP: ETag ="0222d5bffcbc41:3246"
    HTTP: Server =Microsoft-IIS/6.0
    HTTP: X-Powered-By = ASP.NET
    HTTP: Date =Tue, 27 Sep 2005 12:18:27 GMT
    HTTP: Data: Number of data bytes remaining = 1202 (0x04B2)

  3. Ο υπολογιστής-πελάτης λαμβάνει την απάντηση. Η απάντηση έχει μια κατάσταση HTTP 200, αντί της κατάστασης HTTP 304 που ανέμενε στο πρόγραμμα περιήγησης. Επομένως, το πρόγραμμα περιήγησης στέλνει ένα RST TCP για να επαναφέρετε τη σύνδεση. Αυτό γίνεται επειδή ο Internet Explorer θεωρεί ότι ο διακομιστής έστειλε την κατάσταση HTTP 200 κατά λάθος. Το TCP RST παρόμοιο με το ακόλουθο:
    TCP: Control Bits: .A.R.., TCP: Source Port = 0x0747
    TCP: Destination Port = World Wide Web HTTP
    TCP: Sequence Number = 3840808344 (0xE4EE1598)
    TCP: Acknowledgement Number = 3150159894 (0xBBC3A016)
    TCP: Data Offset = 20 bytes
    TCP: 0101.... = Data Offset (20 bytes)
    TCP: ....0000 = Reserved bits
    TCP: Flags = 0x14 : .A.R..
    TCP: ..0..... = No urgent data
    TCP: ...1.... = Acknowledgement field significant
    TCP: ....0... = No Push function
    TCP: .....1.. = Reset the connection
    TCP: ......0. = No Synchronize
    TCP: .......0 = Not the end of the data
    TCP: Window = 0 (0x0)
    TCP: Checksum = 0xF26C
    TCP: Urgent Pointer = 0 (0x0)

    Για περισσότερες πληροφορίες σχετικά με το πρωτόκολλο TCP (Transmission Control), επισκεφθείτε την ακόλουθη τοποθεσία Web:
Ιδιότητες

Αναγνωριστικό άρθρου: 922703 - Τελευταία αναθεώρηση: 14 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια