场景
我有一个非常古老的网站开发在.net (框架1.1)。该站点在Internet 10/11中存在一些问题,可以使用兼容性视图进行修复。
问题
问题是,框架1.1不承认Internet 10/11是一种高级功能浏览器,因此当Internet Explorer 10/11的用户访问该网站时,会禁用许多特性(例如javascript代码)。
微软发布了修补程序来解决.net框架版本的>=2.0问题,而不是框架1.1版本。
我已经尝试过的
我的两分钱
我知道最好的解决方案可能是将整个项目转换成一个更新版本的框架(>=2.0),不幸的是,这个项目是巨大的,它的转换将非常复杂(解决方案包括许多其他项目、旧的经典ASP部分、水晶报表等等)。
真正的问题
是否有不需要最终用户进行项目转换或手动操作的解决方案?
发布于 2014-01-22 15:53:37
我设法找到了一个解决方案:基本上,我将我的应用程序推迟到Framework4.0下运行,而应用程序仍然是用Framework1.1编译的。
为此,我遵循了这 MSDN页面。以下是一段节选:
您可以重定向要在.NET框架4下运行的应用程序。重定向要求在应用程序的配置文件中添加一个元素,该元素允许它在.NET框架4下运行。这样的配置文件采用以下形式:
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>因此,我的问题分两步解决:
现在,该应用程序在Framework4.0下运行,因此正确识别了新的浏览器,并提供了高级功能。
发布于 2013-09-19 14:07:44
编辑web.config文件,并在<system.web>部分中添加
<browserCaps>
<case match="IE[ /](?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
browser=IE
version=${version}
majorversion=${major}
minorversion=${minor}
frames=true
tables=true
cookies=true
javascript=true
javaapplets=true
activexcontrols=true
ecmascriptversion=1.5
vbscript=true
backgroundsounds=true
isMobileDevice="true"
<filter match="[4-9]" with="${major}">
ecmascriptversion=1.3
css1=true
css2=true
xml=true
<filter match="[5-9]" with="${major}">
w3cdomversion=1.0
</filter>
</filter>
<filter match="^b" with="${letters}">
beta=true
</filter>
</case></browserCaps>发布于 2013-07-03 02:16:59
首先:与X兼容的标记必须是< head >部分中的第一个标记。
尝试使用模拟选项,它允许古怪模式:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />此外,从页面中完全删除"DOCTYPE“也有助于强制兼容模式或将类似xml声明的内容放在顶部。
<?xml version="1.0" encoding="UTF-8">https://stackoverflow.com/questions/17302050
复制相似问题