对于IE 10,在DotNetNuke网站上未定义__doPostBack

时间:2012-11-02 22:17:45

标签: asp.net windows-8 dotnetnuke windows-server-2003 internet-explorer-10

我有一个DotNetNuke site,今天有一位客户打电话告诉它并没有在IE 10上工作。具体来说,登录和注册链接不起作用,但它们在兼容模式下。我看了一下我们的测试Windows 8机器,发现它失败了因为__doPostBack未定义。我一直在寻找最后6个小时的修复,我能找到的是显然IE浏览器文件中包含了IE10用户代理,我应该安装this hotfix并重新启动服务器。那没用。我没有注意到任何更改,即使我认为新的ie.browser文件应该匹配新的用户代理。

我可以采取哪些其他步骤来解决问题?注意:服务器在Windows Server 2003上运行带有Service Pack 1的.NET 3.5。该站点运行DotNetNuke 05.06.02。任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:9)

答案 1 :(得分:4)

在我的制作网站上,我尝试了一些事情而且他们没有工作。

我安装了修补程序并重新启动 - 没有好的

我复制了更新的ie.browser文件 - 没有好的

我尝试修改default.browser,ie.browser和mozilla.browser文件,以便为所有内容启用javascript - 没有用。

我做的一件事最终使它工作(这应该适用于所有事情)在InitializePage文件的Default.aspx.vb函数中,我将这一行添加到子例程的开头

Page.ClientTarget = "uplevel"

应该(根据我的理解)将所有浏览器视为可以处理javascript和cookie以及我们需要的所有其他内容。我觉得这是一个非常安全的赌注。

答案 2 :(得分:3)

如果web.config中存在另一个配置,则会覆盖Scott Hanselman的建议修复:

<browserCaps>

ASP.NET浏览器功能嗅探器可以通过3种方式配置(相互覆盖):

  1. Machine wide in <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers
  2. Site only by using .browser files in App_Browsers folder
  3. Site only by using <browserCaps> Element in web.config
  4. 对于IE10,

    <browserCaps> <case "Mozilla .. MSIE ..>下添加以下案例:

    <case match="\d{2,}" with="${version}">
      frames=true
      tables=true
      cookies=true
      backgroundsounds=true
      vbscript=true
      javascript=true
      javaapplets=true
      activexcontrols=true
      tagwriter=System.Web.UI.HtmlTextWriter
      ecmascriptversion=3.0
      msdomversion=${major}${minor}
      w3cdomversion=1.0
      css1=true
      css2=true
      xml=true
    
      <filter with="${letters}" match="^b">
        beta=true
      </filter>
      <filter with="${extra}" match="Crawler">
        crawler=true
      </filter>
    </case>