3

我遇到了在 Windows Server 2003 上运行的 IE11 和 ASP.NET Web 窗体 (.NET 4.0) 的问题。在 IE11 上,源 HTML 中没有出现以下脚本标记:

<script src="/ScriptResource.axd?d=WYhXIHdkh3HFOMewc5Dscl74H0FlrdD4oOAIu08capt3uxzykhWmBntlCyp0ApmvoCoZjoSCP5s1mUjzhOe99tXFvkHJ2vmkIMEuekr4y9dZdi8--YB4rXK6XO-b-mgnKReGNiAy9wDYm6lNNWWtBg2&amp;t=ffffffffbd2983fc" type="text/javascript"></script>

随后 IE11 报告:

Unable to get property 'PageRequestManager' of undefined or null reference

它在所有其他浏览器中都能正常工作。

我想这与浏览器定义有关。有谁知道如何解决这个问题?

更新:

该网站可在我的本地计算机上使用 Windows 7 和 Visual Studio 2013 和 .NET 4.5.1。

您无法在 Windows Server 2003 上安装 .NET 4.5 或 4.5.1,因此我们无法使用这些软件包更新服务器,但我们必须使用 .NET 4.0。

此外,服务器似乎将浏览器识别为低级浏览器,因为“自动”上的会话 cookie 支持将模式设置为“无cookie”,因此 cookie 被写入 URL 的一部分。

希望这些信息能帮助我们解决问题。

谢谢!

4

1 回答 1

6

我们终于从以下问题中找到了答案:

IE11 预览版中未定义“WebForm_DoPostBackWithOptions”

我们在 App_Browsers 中有 CSSFriendlyAdapters.browser 文件,这导致了问题。

我们不得不

1)创建ie11.browser文件如下:

<browsers>
  <browser id="IE11" parentID="Mozilla">
    <identification>
      <userAgent match="Trident\/7.0; rv:(?'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 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
  <browser id="IE110" parentID="IE11">
    <identification>
      <capability name="majorversion" match="11" />
    </identification>

    <capabilities>
      <capability name="ecmascriptversion"    value="3.0" />
      <capability name="jscriptversion"       value="5.6" />
      <capability name="javascript"           value="true" />
      <capability name="javascriptversion"    value="1.5" />
      <capability name="msdomversion"         value="${majorversion}.${minorversion}" />
      <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" />
    </capabilities>
  </browser>
</browsers>

2)然后从bin目录中删除__browserCapabilitiesCompiler.compiled。

现在一切正常!

我希望这也有助于其他有同样问题的人!

于 2013-11-19T12:28:31.210 回答