带有IE11的ASP.NET WebForms 4.0站点不会在Windows Server 2003上为PageRequestManager加载ScriptResource [英] ASP.NET WebForms 4.0 Site with IE11 does not load ScriptResource for PageRequestManager on Windows Server 2003

查看:172
本文介绍了带有IE11的ASP.NET WebForms 4.0站点不会在Windows Server 2003上为PageRequestManager加载ScriptResource的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



'pre> < SCRIPT SRC = /的ScriptResource.axd d = WYhXIHdkh3HFOMewc5Dscl74H0FlrdD4oOAIu08capt3uxzykhWmBntlCyp0ApmvoCoZjoSCP5s1mUjzhOe99tXFvkHJ2vmkIMEuekr4y9dZdi8 - YB4rXK6XO-b-mgnKReGNiAy9wDYm6lNNWWtBg2&安培; amp; T公司= ffffffffbd2983fc 类型=文本/的javascript>< /脚本>

随后IE11报告:

 无法获取未定义或空引用的属性'PageRequestManager'

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



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



更新:



该网站可在我的本地计算机上运行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的一部分。



希望此信息有助于我们解决问题。



谢谢!

解决方案

我们最终找到了以下问题的答案:



'WebForm_DoPostBackWithOptions'在IE11预览中未定义



我们有CSSFri在App_Browsers中的endlyAdapters.browser文件,导致了这个问题。



我们必须



1)创建ie11。浏览器文件如下:

 < browsers> 
< browser id =IE11parentID =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 =browservalue =IE/>
< capability name =layoutEnginevalue =Trident/>
< capability name =layoutEngineVersionvalue =$ {layoutVersion}/>
< capability name =extravalue =$ {extra}/>
< capability name =isColorvalue =true/>
< capability name =lettersvalue =$ {letters}/>
< capability name =majorversionvalue =$ {major}/>
< capability name =minorversionvalue =$ {minor}/>
< capability name =screenBitDepthvalue =8/>
< capability name =typevalue =IE $ {major}/>
< capability name =versionvalue =$ {version}/>
< / capabilities>
< / browser>

<! - Mozilla / 5.0(Windows NT 6.3; Trident / 7.0; rv:11,0),如Gecko - >
< browser id =IE110parentID =IE11>
< identification>
< capability name =majorversionmatch =11/>
< / identification>

< capabilities>
< capability name =ecmascriptversionvalue =3.0/>
< capability name =jscriptversionvalue =5.6/>
< capability name =javascriptvalue =true/>
< capability name =javascriptversionvalue =1.5/>
< capability name =msdomversionvalue =$ {majorversion}。$ {minorversion}/>
< capability name =w3cdomversionvalue =1.0/>
< capability name =ExchangeOmaSupportedvalue =true/>
< capability name =activexcontrolsvalue =true/>
< capability name =backgroundsoundsvalue =true/>
< capability name =cookiesvalue =true/>
< capability name =framesvalue =true/>
< capability name =javaappletsvalue =true/>
< capability name =supportsCallbackvalue =true/>
< capability name =supportsFileUploadvalue =true/>
< capability name =supportsMultilineTextBoxDisplayvalue =true/>
< capability name =supportsMaintainScrollPositionOnPostbackvalue =true/>
< capability name =supportsVCardvalue =true/>
< capability name =supportsXmlHttpvalue =true/>
< capability name =tablesvalue =true/>
< capability name =supportsAccessKeyAttributevalue =true/>
< capability name =tagwritervalue =System.Web.UI.HtmlTextWriter/>
< capability name =vbscriptvalue =true/>
< / capabilities>
< / browser>
< / browsers>

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



现在一切正常!



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


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!

解决方案

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!

这篇关于带有IE11的ASP.NET WebForms 4.0站点不会在Windows Server 2003上为PageRequestManager加载ScriptResource的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆