Проблеми сумісності з Internet Explorer 10/11 та старим веб-сайтом .net 1.1

Сценарій

У мене дуже старий веб-сайт, розроблений в .net (Framework 1.1). На сайті є кілька проблем з Internet Explorer 10/11, які можна виправити за допомогою перегляду сумісності.

Проблема

Проблема полягає в тому, що Framework 1.1 не розпізнає Internet Explorer 10/11 як розширений веб-переглядач можливостей, тому багато функцій (наприклад, javascript-коду) вимикаються, коли користувач із Internet Explorer 10/11 отримує доступ до веб-сайту.

Microsoft released patches to fix this problem for .net framework versions >=2.0 but not for framework 1.1.

Те, що я вже пробував

  1. I tried forcing IE7 Compatibility Mode in web.config or adding HTTP Header in IIS or directly inside html pages with:

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

    but this is not a valid solution, since JavaScript code is still missing due to the 1.1 framework issue.

  2. The only working solution I found is manually setting Compatibility View in the browser, but some of my customers have problems activating Compatibility View since they don't have confidence with PCs.

Мої два центи

I know that probably the best solution would be to convert the entire project to a newer version of the framework (>=2.0), unfortunately the project is huge and its conversion would be very complex (the solution includes a lot of other projects, older classic ASP sections, Crystal Reports reports and so on...)

Реальне запитання

Чи є рішення, яке не вимагає перетворення проекту або ручні операції від кінцевого користувача?

3
Якщо справа appBrowsers не працює, ви можете подивитися в browserCaps : з MSDN
додано Автор Joe Enos, джерело
Якщо справа appBrowsers не працює, ви можете подивитися в browserCaps : з MSDN
додано Автор Joe Enos, джерело
support.microsoft.com/lifecycle/search/… .NET 1.1 збирається померти через 3 місяці. Єдине рішення - це те, що ви вже знаєте, оновлення.
додано Автор Lex Li, джерело
support.microsoft.com/lifecycle/search/… .NET 1.1 збирається померти через 3 місяці. Єдине рішення - це те, що ви вже знаєте, оновлення.
додано Автор Lex Li, джерело
Проект 8 років, і його не було оновлено? Я розумію, що це складний проект для оновлення, але це не схоже на те, що воно було застарілим вчора ...
додано Автор Brad Christie, джерело
Проект 8 років, і його не було оновлено? Я розумію, що це складний проект для оновлення, але це не схоже на те, що воно було застарілим вчора ...
додано Автор Brad Christie, джерело
Не впевнений, що він буде працювати, але є файл appBrowsers для IE10, який виправляє проблеми з кнопками посилання та подібне, може бути роботою додати, що ваш проект може це зробити. fkauffmann.blogspot.ie/2012/01/ & hellip;
додано Автор Full Time Skeleton, джерело

7 Відповіді

edit the web.config file and in the section add

    
        
            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"
            
                ecmascriptversion=1.3
                css1=true
                css2=true
                xml=true
                
                    w3cdomversion=1.0
                
              
              
               beta=true
                                                                           
         
2
додано
Не працює в моєму проекті .Net 2.0
додано Автор Tuyen Nguyen, джерело
Гарне рішення. Працює для нашого додатка 1,1. Не потрібно перекомпіляції.
додано Автор Sheepy, джерело

edit the web.config file and in the section add

    
        
            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"
            
                ecmascriptversion=1.3
                css1=true
                css2=true
                xml=true
                
                    w3cdomversion=1.0
                
              
              
               beta=true
                                                                           
         
2
додано
Не працює в моєму проекті .Net 2.0
додано Автор Tuyen Nguyen, джерело
Гарне рішення. Працює для нашого додатка 1,1. Не потрібно перекомпіляції.
додано Автор Sheepy, джерело

Мені вдалося знайти рішення: в основному я відновлюю мою програму для роботи в рамках Framework 4.0, поки програма все ще компілюється з Framework 1.1.

Для цього я використав цю сторінку MSDN. Ось уривок:

Ви можете переназначити програму для запуску в .NET Framework 4. Переміщення вимагає додавання елемента до файлу конфігурації програми, що дозволяє йому запускати під .NET Framework 4. Такий файл конфігурації має такий формат:

 
   
      
   

Тому моя проблема вирішується в два кроки:

  1. add this section to the web.config file of the Framework 1.1 web application:

     
       
          
       
    
    
  2. in IIS create a new application Pool and configure the old Framework 1.1 web application to run with Framework 4.0 in the newly created pool

Тепер програма працює під "Framework 4.0", тому нові веб-переглядачі правильно розпізнаються, а розширені функції доступні.

1
додано

Мені вдалося знайти рішення: в основному я відновлюю мою програму для роботи в рамках Framework 4.0, поки програма все ще компілюється з Framework 1.1.

Для цього я використав цю сторінку MSDN. Ось уривок:

Ви можете переназначити програму для запуску в .NET Framework 4. Переміщення вимагає додавання елемента до файлу конфігурації програми, що дозволяє йому запускати під .NET Framework 4. Такий файл конфігурації має такий формат:

 
   
      
   

Тому моя проблема вирішується в два кроки:

  1. add this section to the web.config file of the Framework 1.1 web application:

     
       
          
       
    
    
  2. in IIS create a new application Pool and configure the old Framework 1.1 web application to run with Framework 4.0 in the newly created pool

Тепер програма працює під "Framework 4.0", тому нові веб-переглядачі правильно розпізнаються, а розширені функції доступні.

1
додано

просто спробуйте налаштувати IIS для цього -

Додайте користувальницький заголовок HTTP-відповіді в IIS

Щоб додати користувальницький заголовок HTTP на рівні веб-вузла, на рівні папки або на рівні віртуального каталогу в IIS, виконайте дії, що стосуються версії IIS, яку ви використовуєте.

IIS 7 на веб-сервері на базі Windows Server 2008

  1. Запустіть диспетчера IIS. Для цього натисніть кнопку Пуск, виберіть команду Виконати, введіть inetmgr, і натисніть кнопку ОК.
  2. У розділі Підключення двічі клацніть потрібний сервер, а потім двічі клацніть Сайти.
  3. Клацніть веб-сайт, папку чи віртуальну директорію, де ви хочете додати спеціальний заголовок відповіді HTTP.
  4. У розділі Домашня сторінка двічі клацніть заголовки HTTP Response у розділ IIS. Примітка Заповнювач відноситься до назва веб-сайту
  5. У розділі "Дії" натисніть Додати.
  6. У полі Ім'я введіть X-UA-сумісне.
  7. У полі Значення введіть IE = EmulateIE7.
  8. Натисніть кнопку ОК.

IIS 6 та більш ранні версії

  1. Натисніть кнопку Пуск, виберіть пункт Виконати, введіть inetmgr.exe у поле Відкрити, а потім натисніть "ОК".
  2. Розгорніть потрібний сервер, а потім розгорніть веб-сайти.
  3. Клацніть правою кнопкою миші Веб-сайт, папку або віртуальну директорію ви хочете, а потім натисніть Властивості.
  4. На вкладці "Заголовки HTTP" натисніть кнопку Додати під заголовками "Користувацькі HTTP".
  5. У полі Ім'я користувальницького заголовка введіть X-UA-сумісне.
  6. У поле значення заголовка введіть IE = EmulateIE7.
  7. Двічі натисніть кнопку ОК.

for more detail please see this link

1
додано

First: The X-UA-Compatible tag has to be the very first tag in the < head > section.

Спробуйте використати опцію емуляції, яка дозволяє в режимі примхливості:

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

Також, як відомо, повністю знімаючи "DOCTYPE" з вашої сторінки, він допомагає змусити режим сумісності або вставити щось на кшталт декларації xml у верхній частині сторінки

<?xml version="1.0" encoding="UTF-8">
1
додано

First: The X-UA-Compatible tag has to be the very first tag in the < head > section.

Спробуйте використати опцію емуляції, яка дозволяє в режимі примхливості:

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

Також, як відомо, повністю знімаючи "DOCTYPE" з вашої сторінки, він допомагає змусити режим сумісності або вставити щось на кшталт декларації xml у верхній частині сторінки

<?xml version="1.0" encoding="UTF-8">
1
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug