首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Internet 10/11和旧的.net框架1.1网站的兼容性问题

与Internet 10/11和旧的.net框架1.1网站的兼容性问题
EN

Stack Overflow用户
提问于 2013-06-25 15:58:12
回答 4查看 20.4K关注 0票数 3

场景

我有一个非常古老的网站开发在.net (框架1.1)。该站点在Internet 10/11中存在一些问题,可以使用兼容性视图进行修复。

问题

问题是,框架1.1不承认Internet 10/11是一种高级功能浏览器,因此当Internet Explorer 10/11的用户访问该网站时,会禁用许多特性(例如javascript代码)。

微软发布了修补程序来解决.net框架版本的>=2.0问题,而不是框架1.1版本。

我已经尝试过的

  1. 我尝试在IE7中强制web.config兼容模式,或者在web.config中添加Header,或者直接在html页面中添加以下内容:
  2. 我找到的唯一可行的解决方案是在浏览器中手动设置兼容性视图,但我的一些客户在激活兼容性视图时遇到了问题,因为他们对PC没有信心。

我的两分钱

我知道最好的解决方案可能是将整个项目转换成一个更新版本的框架(>=2.0),不幸的是,这个项目是巨大的,它的转换将非常复杂(解决方案包括许多其他项目、旧的经典ASP部分、水晶报表等等)。

真正的问题

是否有不需要最终用户进行项目转换或手动操作的解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-22 15:53:37

我设法找到了一个解决方案:基本上,我将我的应用程序推迟到Framework4.0下运行,而应用程序仍然是用Framework1.1编译的。

为此,我遵循了 MSDN页面。以下是一段节选:

您可以重定向要在.NET框架4下运行的应用程序。重定向要求在应用程序的配置文件中添加一个元素,该元素允许它在.NET框架4下运行。这样的配置文件采用以下形式:

代码语言:javascript
复制
<configuration> 
   <startup>
      <supportedRuntime version="v4.0"/>
   </startup>
</configuration>

因此,我的问题分两步解决:

  1. 将本节添加到Framework1.1Web应用程序的web.config文件中:
  2. 在IIS中创建一个新的应用程序池,并将旧的Framework1.1Web应用程序配置为在新创建的池中使用Framework4.0运行

现在,该应用程序在Framework4.0下运行,因此正确识别了新的浏览器,并提供了高级功能。

票数 1
EN

Stack Overflow用户

发布于 2013-09-19 14:07:44

编辑web.config文件,并在<system.web>部分中添加

代码语言:javascript
复制
    <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>
票数 2
EN

Stack Overflow用户

发布于 2013-07-03 02:16:59

首先:与X兼容的标记必须是< head >部分中的第一个标记。

尝试使用模拟选项,它允许古怪模式:

代码语言:javascript
复制
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

此外,从页面中完全删除"DOCTYPE“也有助于强制兼容模式或将类似xml声明的内容放在顶部。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17302050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档