תופעות
שקול את התרחיש הבא:
-
שירות התפקידים של הרשמה לאינטרנט של שירותי אישורים מותקן בשרת מבוסס Windows Server 2008 R2.
-
יש לך מחשב לקוח שפועל בו Internet Explorer 10 או גירסה מתקדמת יותר.
-
אתה מנסה לגשת לדף הרשמת האינטרנט של שירותי האישורים המתארח בשרת מבוסס Windows Server 2008 R2.
בתרחיש זה, השגיאה הבאה מתקבלת ב- Internet Explorer:
דפדפן אינטרנט זה אינו תומך בהדורת בקשות האישורים
סיבה
בדיקת גירסת הדפדפן מזהה באופן שגוי את גירסת Internet Explorer כ- "IE 1".
פתרון
להלן פתרונות נתמכים לבעיה זו:
-
קביעת תצורה של תצוגת תאימות ב- Internet Explorer.
-
העבר את הפונקציונליות של דף ההרשמה לאינטרנט אל 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 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 בקובץ 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 If
End Function