Internet Explorer11给出错误PageRequestManager未定义

时间:2014-05-10 17:45:30

标签: asp.net .net-4.0 internet-explorer-11

我遇到了一个巨大的财务ASP.Net应用程序的问题,当通过IE11访问时,用.Net 4.0编写 当客户使用运行Windows 8.1,IE11作为浏览器(版本11.0.9600.16438)的Windows平板电脑访问它时,它会返回脚本错误__doPostback undefined 。 如果强制兼容模式,一切都可以正常工作 我为冗长而道歉,但遗憾的是它不是那么直接。 我在文件夹App_browsers中添加了一个带有正则表达式的浏览器文件,以正确解释来自IE11的用户代理字符串(不再是MSIE,Trident,....等)。现在正确解析用户代理字符串。 我在我的本地机器上编译,我得到了这个Windows平板电脑的唯一样本并尝试过:成功,它起作用 我承诺,然后将项目编译在另一台机器上并部署在第三台机器上 可悲的是,问题仍然存在。在帖子__doPostBack is undefined in IE11之后,我手动添加了__dopostback和theform的定义为document.forms [myformid]。重新部署应用程序,现在它在js脚本中将错误Sys.WebForms.PageRequestManager定义为

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(ResizeTexboxKendo); 

在ScriptManager上方的奇怪定义为

<asp:ScriptManager ID="ScriptManager1" runat="server" />   

现在为什么这个定义被剥夺了?我在开发人员工具中控制它不在那里,而如果我运行我的本地版本有? 原则上我的本地机器,编译器机器和部署机器应该是相同的: Windows 2003服务器(!!),. Net 4.0。我会检查.Net更新,不幸的是机器不在我的控制之下。

除发送另一个用户代理字符串外,浏览器版本是否扮演任何角色?

我将不胜感激任何帮助

问候

2 个答案:

答案 0 :(得分:1)

您提到过您尝试在.browser文件夹中添加app_browsers文件。我认为浏览器文件很容易出错。和你一样,我创建了一个浏览器文件,但在尝试了几个版本后javascript value="true", etc。它从来没有奏效。最后使用此browser file中的确切blog post解决了我的问题。

答案 1 :(得分:0)

您的服务器需要更新的浏览器定义文件,以便将IE11识别为可以运行JavaScript的浏览器。有关下载链接,请参阅http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-gecko-webkit.aspx