Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Η υπηρεσία ρόλων εγγραφής στο 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.
-
Τροποποιήστε το αρχείοΟγράφοι.inc αντικαθιστώντας τις γραμμές 44 έως 70 με το ακόλουθο περιεχόμενο. ΤοΟγράφος.inc βρίσκεται στον παρακάτω φάκελο:
%WINDIR%\system32\langtsrv\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 nMSIE
GetInternetExplorerVersionNumber = -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 If
End 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 If
End Function
Περισσότερες πληροφορίες
Οι γραμμές 44 έως 70 του μη τροποποιημένου αρχείου Ειδοποιήσεων.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 If
End Function