Simptome
Luați în considerare următorul scenariu:
-
Serviciul pentru rolul Înscriere web Servicii certificat este instalat pe un server bazat Windows Server 2008 R2.
-
Aveți un computer client care rulează o versiune Internet Explorer 10 o versiune mai recentă.
-
Încercați să accesați pagina Web Enrollment Certificate Services, care este găzduită pe serverul Windows Server 2008 R2.
În acest scenariu, următoarea eroare este primită în Internet Explorer:
Acest browser web nu acceptă generarea solicitărilor de certificate
Cauză
Verificarea versiunii browserului identifică incorect versiunea de Internet Explorer ca "IE 1".
Soluție de evitare
Soluțiile acceptate pentru această problemă sunt următoarele:
-
Configurați vizualizarea de compatibilitate în Internet Explorer.
-
Mutați funcționalitatea paginii Web Enrollment la Windows Server 2012.
-
Modificați fișierul Certsbrt.inc înlocuind liniile 44-70 cu următorul conținut. Certsbrt.inc se află în următorul folder:
%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
Mai multe informații
Liniile 44 până la 70 din fișierul unmodified Certsbrt.inc de pe serverul bazat pe Windows Server 2008 R2 sunt după cum urmează. Acestea sunt liniile care trebuie înlocuite.
'
' 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