Почему IE не анализирует XML, возвращенный из службы данных WCF?

В настоящее время я запускаю IE8 и делаю некоторые тесты с услугами передачи данных WCF. Когда я звоню в одну из моих коллекций в браузере, я получаю

"Вы просматриваете фид, содержащий часто обновляемый контент..."

и ни один из XML не отображается, потому что он не должен понимать элемент содержимого Atom. Однако я могу легко сделать этот же звонок RESTful в Chrome или даже использовать Fiddler и очень просто увидеть ответ.

Есть ли какая-то причина, по которой IE не может разобрать XML, возвращенный из моей службы данных WCF, или параметр, который я могу изменить, чтобы просмотреть его напрямую? У меня, очевидно, есть проблемы, поэтому это не критическая проблема, но это поможет, если мне придется использовать IE для просмотра ответа.

Спасибо!

Ответ 1

Если вы хотите просмотреть в IE8 XML, нажмите

Инструменты > Свойства обозревателя.

  • Инструменты > Свойства обозревателя.
  • Выберите вкладку Контент
  • В Каналах и веб-фрагментах выберите Настройки
  • В разделе Advance отключить Включить просмотр чтения фидов

Если вы просмотрите страницу OData, средство просмотра каналов не будет отображаться, но данные будут отображаться в формате XML.

Ответ 2

IE 8 и 9 просто не поддерживают отображение вывода OData - Atom Pub. В IE9 приведено следующее объяснение:

Internet Explorer не поддерживает этот формат фида.

Поддерживаемые форматы фидов

  • ATOM 0.3, 1.0
  • RSS 0.91, 0.92
  • RSS 1.0
  • RSS 2.0

Однако есть несколько простых способов по-прежнему просматривать вывод из вызова DataService RESTful:

  • Просмотр источника страниц в IE. Угадайте, что там есть.
  • Используйте Fiddler для проверки ответа.
  • Используйте другой браузер, например Chrome, и ответ будет выводиться непосредственно в браузере.

Возможно, IE 10 будет лучше поддерживать отображение и поддержку канала на основе протокола (OData), созданного теми людьми, которые создали и владеют IE: Microsoft.

Ответ 3

Убедитесь, что вы вызываете

response.setCharacterEncoding("text/xml;charset=utf-8");

или эквивалент.