Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Η υπηρεσία ρόλου Εγγραφή Web υπηρεσιών πιστοποιητικών εγκαθίσταται σε ένα διακομιστή που βασίζεται σε Windows Server 2008 R2.
-
Έχετε έναν υπολογιστή-πελάτη που εκτελεί Internet Explorer 10 ή νεότερη έκδοση.
-
Προσπαθείτε να αποκτήσετε πρόσβαση στη σελίδα Εγγραφή Web υπηρεσιών πιστοποιητικών που φιλοξενείται στο διακομιστή που βασίζεται στο Windows Server 2008 R2.
Σε αυτό το σενάριο, λαμβάνεται το ακόλουθο σφάλμα στον Internet Explorer:
Αυτό το πρόγραμμα περιήγησης Web δεν υποστηρίζει τη δημιουργία αιτήσεων πιστοποιητικών
Αιτία
Ο έλεγχος έκδοσης προγράμματος περιήγησης προσδιορίζει εσφαλμένα την έκδοση του Internet Explorer ως "IE 1".
Λύση
Οι υποστηριζόμενες λύσεις για αυτό το πρόβλημα είναι οι εξής:
-
Ρυθμίστε τις παραμέτρους της προβολής συμβατότητας στον Internet Explorer.
-
Μετακίνηση της λειτουργικότητας της σελίδας Εγγραφής Στο Web στο Windows Server 2012.
-
Τροποποιήστε το αρχείο Certsbrt.inc αντικαθιστώντας τις γραμμές 44 έως 70 με το παρακάτω περιεχόμενο. Το Certsbrt.inc βρίσκεται στον ακόλουθο φάκελο:
%WINDIR%\system32\certsrv\en-us
'' If there is no '.' in the UserAgent string, this will return the next character if any' as the version number. ' We extract the string until a '.' and then convert it' into integer. If -1 is returned from this function then it isn't MSIE 'Function GetInternetExplorerVersionNumber(sHttpUserAgent) Dim nMSIEGetInternetExplorerVersionNumber = -1 nMSIE = InStr(sHttpUserAgent, "MSIE") If 0 <> nMSIE Then numChar = InStr(Mid(sHttpUserAgent, nMSIE + 5), ".") - 1 If -1 = numChar Then ' no '.' in the string numChar = 1 End If If nMSIE + 5 + numChar - 1 <= Len(sHttpUserAgent) Then GetInternetExplorerVersionNumber = CInt(Mid(sHttpUserAgent, nMSIE + 5, numChar)) End If End IfEnd Function'' We define a Old MSIE based browser' if it has the string MSIE that is followed by a version number that is less than 4' NOTE:' IsOldMSIE = False does not imply MSIE >= 4.'' i.e. Not IsOldMSIE("abc") = True' Not IsOldMSIE("MSIE") = True'Function IsOldMSIE(sHttpUserAgent) Dim nMSIE Dim sMSIEVersion IsOldMSIE = False nMSIE = InStr(sHttpUserAgent, "MSIE") If nMSIE <> 0 AND (nMSIE+5 < Len(sHttpUserAgent)) Then nVersion = GetInternetExplorerVersionNumber(sHttpUserAgent) If -1 <> nVersion Then IsOldMSIE = nVersion < NEW_MSIE_VERSION End If End IfEnd Function
Περισσότερες πληροφορίες
Οι γραμμές 44 έως 70 στο αρχείο Certsbrt.inc χωρίς μετατροπή στο διακομιστή που βασίζεται στο Windows Server 2008 R2 έχουν ως εξής. Αυτές είναι οι γραμμές που πρέπει να αντικατασταθούν.
'' We define a Old MSIE based browser' if it has the string MSIE that is followed by a version number that is less than 4' NOTE:' IsOldMSIE = False does not imply MSIE >= 4.'' i.e. Not IsOldMSIE("abc") = True' Not IsOldMSIE("MSIE") = True'Function IsOldMSIE(sHttpUserAgent) Dim nMSIE Dim sMSIEVersion nMSIE = InStr(sHttpUserAgent, "MSIE") If nMSIE=0 Then IsOldMSIE = False ElseIf nMSIE+5 < Len(sHttpUserAgent) Then sMSIEVersion = Mid(sHttpUserAgent, nMSIE+5, 1) IsOldMSIE = CInt(sMSIEVersion) < NEW_MSIE_VERSION Else IsOldMSIE = False End IfEnd Function