Sintomi
Considerare lo scenario descritto di seguito:
-
Il servizio ruolo Registrazione Web Servizi certificati è installato in un server basato su Windows Server 2008 R2.
-
Si dispone di un computer client che esegue Internet Explorer 10 o una versione successiva.
-
Si prova ad accedere alla pagina Registrazione Web servizi certificati ospitata nel server basato su Windows Server 2008 R2.
In questo scenario, in Internet Explorer viene visualizzato l'errore seguente:
Questo Web browser non supporta la generazione di richieste di certificato
Causa
Il controllo della versione del browser identifica erroneamente la versione di Internet Explorer come "Internet Explorer 1".
Soluzione alternativa
Le soluzioni alternative supportate per questo problema sono le seguenti:
-
Configurare la visualizzazione compatibilità in Internet Explorer.
-
Spostare la funzionalità della pagina Registrazione Web in Windows Server 2012.
-
Modificare il file Certsbrt.inc sostituendo le righe da 44 a 70 con il contenuto seguente. Certsbrt.inc si trova nella seguente cartella:
%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
Ulteriori informazioni
Le righe da 44 a 70 nel file Certsbrt.inc non modificato nel server basato su Windows Server 2008 R2 sono le seguenti. Queste sono le righe che devono essere sostituite.
'' 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