Подтвердить что ты не робот

Недопустимая ошибка в представлении

Я получаю недопустимую ошибку в представлении в отношении ScriptResource.axd. Просто интересно, может ли кто-нибудь из вас помочь мне в этом. Ошибка:

2009-02-24 09:46:30,021 [13] DEBUG ASP.global_asax [(null)] - Request start - URL: /Web/ScriptResource.axd?d=E9hlvtsn8Gr1MyjysW1gFDFYr4CVwstY-sC22tRu5V8d7UyEYz3FhVYGrlhY87n2ihgKh58RrMRhK-Yk2WcQahEaCg_asTInqHK
2009-02-24 09:46:30,021 [13] DEBUG ASP.global_asax [(null)] - Application_AuthenticateRequest started
2009-02-24 09:46:30,021 [13] ERROR ASP.global_asax [(null)] - Unexpected error.  User presented with Site Error page.
System.Web.HttpException: Invalid viewstate.
   at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType)
   at System.Web.UI.Page.DecryptString(String s)
   at System.Web.Handlers.ScriptResourceHandler.DecryptParameter(NameValueCollection queryString)
   at System.Web.Handlers.ScriptResourceHandler.ProcessRequestInternal(HttpResponse response, NameValueCollection queryString, VirtualFileReader fileReader)
   at System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context)
   at System.Web.Handlers.ScriptResourceHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Это происходит в производственной среде. Я не могу воспроизвести это в dev и тестовых средах. Также эти страницы могут быть доступны только для аутентифицированных пользователей. Было бы действительно, если бы вы могли пролить свет на это.

4b9b3361

Ответ 1

Я думаю, что эти ошибки происходят с разными браузерами по разным причинам, что и делает так трудно отследить.

Ошибка IE8

Microsoft заявила, что ошибка в IE8 (в некоторых случаях) генерирует ложные запросы на сервер, которые не влияют на пользователя, но приводят к ошибкам, регистрируемым на стороне сервера.

Смотрите эту дискуссию здесь: Ошибка IE8 - 4K сброшено - "Недопустимое представление" при загрузке ScriptResource.axd (изменить: ссылка теперь требует входа в систему по какой-то причине, извините)

... особенно обновление EricLaw-MSFT, когда он говорит:

Следует отметить, что любой, кто сталкивается с проблемой здесь в IE6/IE7 или Firefox, сталкивается с другой проблемой, которая не связана с проблемой IE8, описанной ниже.

В этом блоге также описаны ошибки: Ошибки в загрузчике IE8 Lookahead

Говорят, что изменение способа установки Content-Type поможет с некоторыми из ошибок, хотя не все из них - они говорят, что это вызвано различными неясными обстоятельствами, которые они все еще ищут.

Обновление: По состоянию на 01 апреля 2009 года эти ошибки IE8 были исправлены с помощью накопительного обновления IE8 (KB980182).
Это сообщение: IE8 Lookahead Downloader Исправлено дает более подробную информацию об ошибках и других возможных/частичных обходных методах (например, этот), кроме ожиданий для всех в мире, чтобы загрузить исправление.

Другие браузеры

Пока не выяснили, но другие браузеры также генерируют эти ошибки, предположительно по разным причинам.

Веб-фермы

Эта проблема не ограничивается сайтами, запущенными на веб-фермах, но если вы работаете в ферме, проверьте этот ответ jesal, который может помочь

Ответ 2

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

Другая возможность заключается в том, что дата сборки будет в будущем. Это приводит ко всем видам неясных проблем и заслуживает проверки. Может быть, ваш сервер находится в другом часовом поясе?

Ответ 3

Я бы предложил посмотреть этот... в основном он описывает некоторые случаи, когда это может произойти в зависимости от типа doctype. У нас была аналогичная проблема, и она, казалось, только проявлялась беспорядочно... для нас это был конфликт между нашим XHTML-допитом и javascript, который у нас был на странице. Мы смогли решить эту проблему, гарантируя, что весь наш javascript был правильно упакован в теги.

<script>
     mycode;
</script>

станет

<script>
// <![CDATA[
    mycode;
// ]]>
</script>

Это может быть не идентичная проблема, но если у вас есть xhtml doctype, посмотрите, есть ли у вас незаписанные символы, которые где-то не являются юридическим XML (например, "<" ).

Ответ 4

MS рекомендует не объявлять вашу кодировку с использованием метатега и вместо этого устанавливать ее как заголовок HTTP.

Итак, удалите

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

и добавьте

Response.AddHeader("Content-Type", "text/html; charset=utf-8");

Ответ 5

Это может произойти, если machineKey пула приложений, который получает запрос для scriptresource.axd, отличается от пула приложений, который обслуживал исходную страницу. Это наиболее вероятно, если вы используете веб-ферму. Это также может произойти на одном сервере, если пул приложений перезапускается, так как будет создан новый машинный ключ. Решение либо заключается в том, чтобы поместить фиксированный файл machineKey в ваш web.config.

Ответ 6

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

Ответ 7

Такая же ошибка здесь для User-Agent: Mozilla/4.0 (совместимо; MSIE 7.0; AOL 9.0; Windows NT 6.0; Trident/4.0; GTB5; SLCC1;.NET CLR 2.0.50727; Media Center PC 5.0;.NET CLR 3.5.30729;.NET CLR 3.0.30618)

Я пробовал модифицировать/удалять объявление doctype и деформировать javascript в // <! [CDATA [и все еще есть исключения...

На данный момент все происходит от того же IP

Ответ 8

Я получаю те же ошибки, они на самом деле только начали за последние месяц или два, это происходило на нескольких наших сайтах, и мы не изменили ни одного из них с декабря. Это заставляет меня думать, что это изменение конфигурации или обновление Windows.

Ответ 9

Насколько велико состояние представления? Некоторые прокси-серверы усекают состояние большого представления.

Легко злоупотреблять viewstate, поскольку он включен по умолчанию. Если у вас есть большое представление, вы, вероятно, захотите взглянуть на отключенное состояние просмотра на элементах управления, которые ему не нужны.