Симптоми
Помислете за следния сценарий:
-
Услугата за роли на уеб записване на услуги за сертификати е инсталирана на 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 във файла unmodified 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