2016-10-31 2 views
0

В моем методе Index контроллера() Я извлекать некоторые данные из БД, прежде чем вернуться содержимое к виду:MVC - «Эта страница не может быть отображена» - IE только без исключения

[HttpGet] 
    public ViewResult Index() 
    { 
     var model = new ItemsModel(); 

     model.Items = itemService.GetSomeItems(User.RoleId); 

     return View(model); 
    } 

Это всегда работает безупречно в Chrome и Firefox, но IE 11 работает только в зависимости от того, что возвращается методом GetSomeItems.

Когда товаров не так много, IE возвращает представление без проблем. Но если есть, например, 300 возвращенных элементов (вызов занимает около 4 секунд), IE ждет около 5-8 секунд, прежде чем показывать страницу «Эта страница не может быть отображена».

Результаты зависят от того, что возвращается в методе службы, хотя я не уверен, что это объем элементов, их содержимого или времени вызова.

Когда я отлаживаю приложение, он работает безупречно, без каких-либо исключений, просто заканчивая страницу «Эта страница не может быть отображена». Это не мой кеш, вызывающий проблему, потому что другие пользователи испытывают ту же самую проблему только с IE. Я попытался разместить точки отладки в jquery $ (document) .ready методе Index.cshtml, но они никогда не достигаются.

Что это за IE, которые могут быть причиной этого? Я знаю, что есть встроенные тайм-ауты (browser timeouts while asp.net application keeps running), но вызов, занимающий 4 секунды, не объясняет выше. Есть идеи? Аксессуар за вызовом использует Entity Framework, если это может быть преступником. Протестировано для других версий IE с использованием F12, и это также не работает для IE 11,10,9.

ответ

0

Проблема была вызвана обвалом IE, когда на страницу включено слишком много AntiForgeryTokens.

Когда GetSomeItems() вернул более 236 объектов, они были зациклированы в представлении и привели к ~ 240 @ Html.AntiForgeryToken() линиям, с которыми IE неспособен справиться.

Смежные вопросы