确定IIS / ASP.NET是否识别IE 11浏览器版本

时间:2016-04-06 09:07:30

标签: asp.net .net internet-explorer compatibility

因此,当Microsoft推出新的浏览器版本时,他们需要运行.NET Framework的更新以使其识别浏览器版本,否则某些功能可能会中断。

ASP.NET Doesn’t Detect IE11

我正在见证这一点 - 某些页面仅适用于兼容性视图,它们也适用于Chrome。然后其他页面将无法在兼容性视图中工作,但在浏览器强制使用时,它们在边缘模式下工作。我们有可怕的标签

Main()

在母版页中,这是我们10的首发,但不是我在下面提出的问题。

问题

问题是,如何在服务器上获得一些确凿的证据,证明客户端浏览器实际上是什么。

此外,是否有关于ASP.NET如何使用这些.browser文件的信息 - 如何确定ASP.NET如何使用它们来匹配用户代理,以及其他部分是什么。

背景

我们在VS2013下运行了一个旧的ASP.NET网站项目,目标是.NET4。我在带有.NET版本的机器上安装了VS2015

我已查看smallestdotnet以查看我的版本。它说4.6.1并给我的用户代理:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

在网站上以兼容模式运行时,它是:

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

现在,解决方案中的ASP_Browsers文件夹不包含任何浏览器定义文件。

我在C:\ Windows \ Microsoft.NET \ Framework文件夹下有以下.browser文件:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC EA 2)

v4.0.30319 \ Config \ Browsers \ ie.browser的内容如下:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\avantgo.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\cassio.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\Default.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\docomo.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\ericsson.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\EZWap.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\gateway.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\generic.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\goAmerica.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\ie.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\Jataayu.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\jphone.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\legend.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\MME.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\mozilla.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\netscape.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\nokia.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\openwave.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\opera.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\palm.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\panasonic.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\pie.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\webtv.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\winwap.browser
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\xiino.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\blackberry.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\chrome.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\Default.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\firefox.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\gateway.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\generic.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\ie.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\iemobile.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\iphone.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\opera.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\safari.browser
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\ucbrowser.browser

我的Windows 7计算机上的所有内容都在本地运行。我正在跑步:

<browsers>
    <browser id="IE" parentID="Mozilla">
        <identification>
            <userAgent match="MSIE (?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
            <userAgent nonMatch="IEMobile" />
        </identification>

        <capture>
            <userAgent match="Trident/(?'layoutVersion'\d+)" />
        </capture>

        <capabilities>
            <capability name="browser"              value="IE" />
            <capability name="layoutEngine"         value="Trident" />
            <capability name="layoutEngineVersion"  value="${layoutVersion}" />
            <capability name="extra"                value="${extra}" />
            <capability name="isColor"              value="true" />
            <capability name="letters"              value="${letters}" />
            <capability name="majorversion"         value="${major}" />
            <capability name="minorversion"         value="${minor}" />
            <capability name="screenBitDepth"       value="8" />
            <capability name="type"                 value="IE${major}" />
            <capability name="version"              value="${version}" />
        </capabilities>
    </browser>

    <!-- Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325) -->
    <browser id="IE6Plus" parentID="IE">
        <identification>
            <capability name="majorversion" match="^[6-9]|\d{2,}$" />
        </identification>

        <capabilities>
            <capability name="jscriptversion"       value="5.6" />
            <capability name="msdomversion"         value="${majorversion}.${minorversion}" />
            <capability name="ExchangeOmaSupported" value="true" />
            <capability name="activexcontrols"      value="true" />
            <capability name="backgroundsounds"     value="true" />
            <capability name="javaapplets"          value="true" />
            <capability name="supportsVCard"        value="true" />
            <capability name="supportsAccessKeyAttribute"    value="true" />
            <capability name="vbscript"             value="true" />
        </capabilities>
    </browser>

    <!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
    <browser id="IE6to9" parentID="IE6Plus">
      <identification>
        <capability name="majorversion" match="^[6-9]$" />
      </identification>
    </browser>

    <!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
    <browser id="IE7" parentID="IE6to9">
        <identification>
            <capability name="majorversion" match="^7$" />
        </identification>
        <capabilities>
            <capability name="jscriptversion" value="5.7" />
        </capabilities>
    </browser>

    <!-- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) -->
    <browser id="IE8" parentID="IE6to9">
        <identification>
            <capability name="majorversion" match="^8$" />
        </identification>
        <capabilities>
            <capability name="jscriptversion" value="6.0" />
        </capabilities>
    </browser>

  <!-- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) -->
  <browser id="IE9" parentID="IE6to9">
    <identification>
      <capability name="majorversion" match="^9$" />
    </identification>
    <capabilities>
      <capability name="jscriptversion" value="6.0" />
    </capabilities>
  </browser>

  <!-- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) -->
  <browser id="IE10Plus" parentID="IE6Plus">
    <identification>
      <capability name="majorversion" match="\d{2,}" />
    </identification>
    <capabilities>
      <capability name="jscriptversion" value="6.0" />
    </capabilities>
  </browser>

  <browser id="InternetExplorer" parentID="Mozilla">
    <identification>
      <userAgent match="Trident/(?'layoutVersion'[7-9]|0*[1-9]\d+)(\.\d+)?;(.*;)?\s*rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)))" />
      <userAgent nonMatch="IEMobile" />
      <userAgent nonMatch="MSIE " />
    </identification>

    <capabilities>
      <capability name="browser"              value="InternetExplorer" />
      <capability name="version"              value="${version}" />
      <capability name="majorversion"         value="${major}" />
      <capability name="minorversion"         value="${minor}" />
      <capability name="layoutEngine"         value="Trident" />
      <capability name="layoutEngineVersion"  value="${layoutVersion}" />
      <capability name="type"                 value="InternetExplorer${major}" />
    </capabilities>
  </browser>

  <gateway id="IEbeta" parentID="IE">
     <identification>
        <capability name="letters" match="^([bB]|ab)" />
     </identification>

     <capture>
     </capture>

     <capabilities>
        <capability name="beta"    value="true" />
     </capabilities>
  </gateway>

</browsers>

在Web.Config中启用了跟踪功能后,我会收到以下信息:

标题集

Windows 7 64-bit SP1.  
I have the website running in IIS 7.5.7600.16385.
IE11 (11.0.9600.18230)    

回复标题集

User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

1 个答案:

答案 0 :(得分:0)