ASP.NET WebForms 4.0 Site with IE11 does not load ScriptResource for PageRequestManager on Windows Server 2003

社会主义新天地 提交于 2019-12-01 06:25:27

问题


I am having a problem with IE11 and ASP.NET Web Forms (.NET 4.0) that runs on Windows Server 2003. On IE11, the following script tag does not appear in the source HTML:

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

And subsequently IE11 reports:

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

It works fine in all other browsers.

I guess it has something to do with Browser Definitions. Any one knows how to fix this problem?

UPDATE:

The web site works on my local computer with Windows 7 and Visual Studio 2013 and .NET 4.5.1.

You cannot install .NET 4.5 or 4.5.1 on Windows Server 2003, and therefore we cannot update the server with these packages, but we have to do with .NET 4.0.

Also, it seems that the server recognizes the browser as low-level browser, because session cookie support on "Auto" sets the mode to "cookieless", so that cookie is written as a part of the URL.

Hope this information helps us to solve the problem.

Thanks!


回答1:


We found finally the answer from the following question:

'WebForm_DoPostBackWithOptions' is undefined in IE11 Preview

We had CSSFriendlyAdapters.browser file in App_Browsers, which caused the problem.

We had to

1) create ie11.browser file as follows:

<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) And then delete __browserCapabilitiesCompiler.compiled from the bin directory.

Now everything is working fine!

I hope this helps also others who are having the same problem!



来源:https://stackoverflow.com/questions/19657220/asp-net-webforms-4-0-site-with-ie11-does-not-load-scriptresource-for-pagerequest

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!