1. 程式人生 > >Windows Server 2003下ASP.NET無法識別IE11的解決方法

Windows Server 2003下ASP.NET無法識別IE11的解決方法

歡迎更多的朋友加入我的QQ群  一起交流學習

由於IE11對User-Agent字串進行了比較大的改動,所以導致很多通過User-Agent來識別瀏覽器的程式,都相應的出現了無法識別IE11的情況。(普通使用者端則可以通過這個方法來進行設定。)

在Windows Server 2003系統下的.Net就出現了這樣的問題,用IE11上asp.net的網站,postback都失效了。

之前解決類似的問題是iOS下的Chrome,那時在site project加了一個App_Browsers目錄然後放了一個Chrome的定義。

結果IE11用相同的解決方法竟然沒用,搜尋到有人說安裝微軟的 hotfix 可以解決,結果裝了好幾個一樣沒效(因為是 Windows Server 2003,所以也沒辦法安裝 .Net 4.5)

最後終於在國外網站上找到了相應的解決方法,直接去修改 .Net目錄總算解決了,操作步驟如下:

對該檔案進行編輯 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\Browsers

把以下的瀏覽器定義加進去:

<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko -->
<browser id="IE11Preview" parentID="Mozilla">
    <identification>
        <userAgent
match="Trident/(?'layoutVersion'\d+).*rv:(?'revision'(?'major'\d+)(\.(?'minor'\d+)?))" />
<userAgent nonMatch="MSIE" /> </identification>   <capabilities> <capability name="browser" value="IE" /> <capability name="layoutEngine" value
="Trident" />
<capability name="layoutEngineVersion" value="${layoutVersion}" /> <capability name="isColor" value="true" /> <capability name="screenBitDepth" value="8" /> <capability name="ecmascriptversion" value="3.0" /> <capability name="jscriptversion" value="6.0" /> <capability name="javascript" value="true" /> <capability name="javascriptversion" value="1.5" /> <capability name="w3cdomversion" value="1.0" /> <capability name="ExchangeOmaSupported" value="true" /> <capability name="activexcontrols" value="true" /> <capability name="backgroundsounds" value="true" /> <capability name="cookies" value="true" /> <capability name="frames" value="true" /> <capability name="javaapplets" value="true" /> <capability name="supportsCallback" value="true" /> <capability name="supportsFileUpload" value="true" /> <capability name="supportsMultilineTextBoxDisplay" value="true" /> <capability name="supportsMaintainScrollPositionOnPostback" value="true" /> <capability name="supportsVCard" value="true" /> <capability name="supportsXmlHttp" value="true" /> <capability name="tables" value="true" /> <capability name="supportsAccessKeyAttribute" value="true" /> <capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" /> <capability name="vbscript" value="true" /> <capability name="revmajor" value="${major}" /> <capability name="revminor" value="${minor}" /> </capabilities> </browser>

在執行 c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regbrowsers.exe -i,重新啟動 IIS 即可解決IE11不被識別的問題。