2013-04-30 2 views
0

Итак, я пишу приложение веб-сопоставления с использованием OpenLayers в WebForms в .NET 4.5.Запуск OpenLayers в .NET 4.5 breaks

Он работал чудесно, пока мой браузер не обновился до IE9. Теперь JavaScript терпит неудачу. После исследования я обнаружил, что проблема заключается в том, что IE9 изменил способ обработки определенных типов JavaScript. Таким образом, решение, пока сообщество не сможет переписать библиотеки JavaScript, похоже, что браузер работает в режиме совместимости. К сожалению, я не могу заставить режим совместимости работать правильно.

В настоящее время мое приложение имеет одну страницу, и это заголовок:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="AgPlaceHolder._default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> 
<title>Agrilogic Place Holder</title> 
<script src="OpenLayers.js"></script> 
<script src="AgInit.js"></script> 
<script src="AgLabels.js"></script> 

<style> 
    html, body 
    { 
     width: 100%; 
     height: 100%; 
     margin: 0; 
     padding: 0; 
    } 
</style> 

Это не сработало. Так что я нашел эту альтернативу, чтобы добавить в файл web.config:

<system.webServer> 
    <httpProtocol> 
    <customHeaders> 
     <add name="X-UA-Compatible" value="IE=EmulateIE8"/> 
    </customHeaders> 
    </httpProtocol> 
</system.webServer> 

Это также не работает.

Я пробовал некоторые варианты, которые я видел вокруг, но никто из них, похоже, не работает. Кто-нибудь видит, что я мог сделать неправильно? Или есть другое решение этой проблемы?

Спасибо.

Вновь построенная страница имеет те же ошибки. Когда я удаляю Bing:

0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'wrapDateLine': object is null or undefined 

Когда я включаю Bing:

0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'resources': object is null or undefined 

Я на милость вашего опыта.

+0

Работает ли страница, если вы используете режим IE8 с помощью инструментов разработчика F12? –

+0

На самом деле нет. Похоже, здесь есть более глубокая проблема. Я полностью отключил свой код, просто показывая одну карту базового слоя Bing, и все еще не удалось. Он отбросил «Uncaught TypeError: Невозможно прочитать свойства» ресурсов «неопределенного» из функции инициализации Bing. Я собираюсь создать новый проект. – bshender

+0

Это не проблема с браузером. Код работает в XAMPP и терпит неудачу, когда я переношу его в Visual Studio. Раньше у меня не было этой проблемы. Но в XAMPP он работает в каждом браузере, который я пробовал. – bshender

ответ

1

Таким образом, по-видимому, BING отправляет сообщение об ошибке «ваш ключ истек» под статусом 200. OpenLayers, вполне разумно, предположил, что статус 200 означает «O.K.» когда BING означало «мы слишком ленивы, чтобы делать это правильно». Естественно, Chrome Developer Tools, FireBug и Visual Studio сделали то же самое и не сообщили о проблемах и до тех пор, пока скрипт не попытался запустить. Поэтому обратите внимание на следующего парня: откройте весь ответ, не верьте заголовку.