3

場景兼容性問題與Internet Explorer 10/11和一箇舊的.NET Framework 1.1的網站

我在.NET(1.1框架)開發的一個很老的網站。該網站在Internet Explorer 10/11中有幾個問題可以使用兼容性視圖進行修復。

的問題

問題是,框架1.1不能識別的Internet Explorer 10/11作爲先進能力的瀏覽器,使大量的功能(例如JavaScript代碼)被禁用時與網際用戶Explorer 10/11訪問該網站。

微軟發佈補丁來修復這個問題對於.NET Framework版本> = 2.0而不是1.1的框架。

我已經嘗試過

  1. 我試圖迫使IE7兼容模式在web.config中或添加HTTP標頭在IIS或直接的html頁面裏面有:

    <meta http-equiv="X-UA-Compatible" content="IE=7" /> 
    

    但這不是有效的解決方案,因爲由於1.1框架問題,JavaScript代碼仍然丟失。

  2. 唯一可行的解​​決方案,我發現是手動設置在瀏覽器兼容性視圖,但我的一些客戶在激活兼容性視圖問題,因爲他們沒有與個人電腦的信心。

我的兩分錢

我知道,可能是最好的解決辦法是在整個項目轉換爲框架(> = 2.0)的新版本,遺憾的是該項目是巨大的,其轉換將是非常複雜的(該解決方案包括了很多其他項目的,舊的傳統的ASP部分,水晶報表報表等...)

真正的問題

有沒有不需要最終用戶進行項目轉換或手動操作的解決方案?

+2

不知道它是否會工作,但IE10的appBrowsers文件解決了鏈接按鈕之類的問題,可能會增加工作量,如果您的項目可以採用它。 http://fkauffmann.blogspot.ie/2012/01/aspnet-fails-to-detect-ie10-causing.html –

+1

如果'appBrowsers'的東西不起作用,你可能想看看'browserCaps': [來自MSDN](http://msdn.microsoft.com/en-us/library/sk9az15a(v = vs.71).aspx) –

+4

該項目是8歲,尚未更新?我意識到這是一個複雜的項目來更新,但它不像它已被廢棄_yesterday _... –

回答

1

我設法找到一個解決方案:基本上我重新定位我的應用程序框架4.0下運行,而應用程序仍與Framework 1.1的編譯。

爲了實現這個功能,我遵循了this MSDN頁面。以下是摘錄:

您可以將應用程序重定向到在.NET Framework 4下運行。重定目標要求添加到應用程序的配置文件中的元素,允許它在.NET Framework上運行4,這樣的配置文件的形式如下:

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

所以我的問題是,在2個步驟來解決:

  1. 添加本節進行到Framework 1.1的Web應用程序的web.config文件:

    <configuration> 
        <startup> 
         <supportedRuntime version="v4.0"/> 
        </startup> 
    </configuration> 
    
  2. 在IIS中創建一個新的應用程序池,並配置舊Framework 1.1的Web應用程序在新創建的池

與框架4.0運行現在,應用程序框架4.0下運行,因此新的瀏覽器正確識別和先進的功能都可用。

1

首先:X-UA兼容標籤必須是< head>部分中的第一個標籤。

嘗試使用模擬選項,它允許怪癖模式:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

而且,完全刪除「DOCTYPE」從你的網頁也已經知道幫助力的兼容性模式或將像一個XML聲明在頂部

<?xml version="1.0" encoding="UTF-8"> 
2

編輯網頁。配置文件,並在<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> 
+1

好的解決方案。適用於我們的1.1應用程序。不需要重新編譯。 – Sheepy

+0

在我的.Net 2.0項目中不起作用 –

1

只是嘗試配置IIS,此 -

添加自定義HTTP響應頭在IIS

要添加自定義HTTP響應頭在網站級別,文件夾級別或IIS中的虛擬目錄級別,請按照您使用的IIS版本的步驟進行操作。

基於Windows Server 2008的Web服務器

  1. 啓動IIS管理器在IIS 7。爲此,請單擊開始,單擊運行,鍵入inetmgr, ,然後單擊確定。
  2. 在Connections下,雙擊所需的服務器,然後雙擊網站 。
  3. 單擊您想要添加自定義HTTP響應標頭的網站,文件夾或虛擬目錄。
  4. 在主頁下,雙擊HTTP部分中的 HTTP響應頭。注意佔位符是指網站的名稱 。
  5. 在操作下,單擊添加。
  6. 在名稱框中,鍵入X-UA兼容。
  7. 在值框中,鍵入IE = EmulateIE7。
  8. 單擊確定。

IIS

  1. 單擊開始6個早期版本,單擊運行,在打開框中鍵入inetmgr.exe,然後 單擊確定。
  2. 展開所需的服務器,然後展開網站。
  3. 右鍵單擊所需的網站,文件夾或虛擬目錄 ,然後單擊「屬性」。
  4. 在HTTP標題選項卡上,單擊自定義HTTP標題下的添加。
  5. 在自定義標題名稱框中,鍵入X-UA兼容。
  6. 在自定義標題值框中,鍵入IE = EmulateIE7。
  7. 單擊確定兩次。

更多細節請參閱本link