首页 新闻 会员 周边 捐助

IE9/10 访问asp.net网站时(IIS7.5)的兼容性问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-11-19 09:09

服务器环境:windows server 2008,IIS7.5,.Net Framework 3.5sp1

站点用的是form验证,登录页验证用户密码成功后,正常应该是跳转到192.168.1.77/Default.aspx (IE6/7/8,Firefox,Chrome都是)

但在 IE9/10 下,跳转地址却变成了这么一长串:

http://192.168.1.77/(F(w6TwPZE0kzwCYQBkAG0AaQBuAAAAwI8XHDHkzgEAwMP5TDXkzgEAAC8AAACkZC9iRPRO-x9A9jtdq8cg__ZTYg2))/Default.aspx

如果点击“兼容性视图”,则正常跟IE8的一样。

网上看有说页面指定兼容模式的,在Default.aspx 的header下加

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />,测试了也没用

 

由于站点会基于地址作一些逻辑处理,IE9/10 的这种情况就有问题了,请教园友们帮帮忙

水无声的主页 水无声 | 初学一级 | 园豆:92
提问于:2013-11-18 15:53
< >
分享
最佳答案
2

这个问题早经微软官方确认,是IE10的一个Bug,也发布了两个HOTFIX专门用来修复这个问题

http://www.cnblogs.com/79039535/p/3335121.html

建议你去看我这篇文章~希望能解决你的问题。

其实这是ASP.NET 2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功能,不处理与Cookie相关的程式码等,从而在浏览器中不保存服务器返回的Session标识,造成丢失等。

简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browser definition file)

     步骤如下:

     1.添加一个"App_Browsers"文件夹

     2.添加一个"*.browser"后缀的文件,如IE10.browser.

     3.添加文件内容如下:

  

<browsers> 
    <browser refID="Default"> 
        <capabilities><!-- To avoid wrong detections of e.g. IE10 --> 
            <capability name="cookies" value="true" /> 
            <capability name="ecmascriptversion" value="3.0" /> 
        </capabilities> 
    </browser> 
</browsers> 
收获园豆:10
薛凯凯圆滚滚 | 初学一级 |园豆:36 | 2013-11-18 17:50
其他回答(2)
0

如楼上所说,确实是BUG,IE9应该没问题吧?把兼容模式点上

56180825 | 园豆:1749 (小虾三级) | 2013-11-18 19:32
0

顶。学习了,刚好解决了我的问题。

pure_soul | 园豆:202 (菜鸟二级) | 2016-02-18 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册