我遇到了一个巨大的财务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更新,不幸的是机器不在我的控制之下。
除发送另一个用户代理字符串外,浏览器版本是否扮演任何角色?
我将不胜感激任何帮助
问候
马
答案 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。