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

Sys.WebForms.PageRequestManagerServerErrorException: при обработке запроса на сервере произошла неизвестная ошибка. "

У меня есть пара панелей обновлений и вкладки jquery на странице. А также я загружаю пару пользовательских элементов управления на панели обновления. После того, как пользователь подождал пару минут (не проверял время около 40 минут). когда пользователь отправляет запрос с кнопки отправки, он дает ниже ошибку?

'Sys.WebForms.PageRequestManagerServerErrorException:
Sys.WebForms.PageRequestManagerServerErrorException: An unknown 
error occurred while processing the request on the server. The status 
code returned from the server was: 0' when calling method: 
[nsIDOMEventListener::handleEvent]

Я не могу отслеживать эту проблему, чтобы ее исправить. Но я уверен. Это вызывает Ajax. Гуру, если вы знаете решение. Пожалуйста, дайте мне знать.

4b9b3361

Ответ 1

Эта проблема иногда возникает, когда у вас есть элемент управления, зарегистрированный как AsyncPostbackTrigger в нескольких панелях обновлений.

Если это не проблема, попробуйте добавить следующее после объявления менеджера script:

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            args.set_errorHandled(true);
        }
    }
</script>

Здесь обсуждается еще несколько решений: http://forums.asp.net/t/1066976.aspx/9/10

Ответ 2

У меня была эта проблема, и я часами пытался ее исправить.

Решение, отмеченное как ответ, не будет исправлять ошибку, обрабатывать ее только.

Лучшим подходом является проверка файлов журнала IIS, и ошибка должна быть там. Похоже, что панель обновления инкапсулирует реальную ошибку и выводит ее как "ошибку javascript".

Например, моя ошибка заключалась в том, что я забыл создать класс [Serializable]. Хотя это работало нормально локально, оно не работало при развертывании на сервере.

Ответ 3

Я получил эту ошибку, когда у меня была моя кнопка в GridView в UpdatePanel..., опуская мой код, я обнаружил, что вышеупомянутая ошибка вызвана из-за другой внутренней ошибки. "Потенциально опасное значение Request.Form было обнаружено у клиента"

Наконец, я понял, что один из моих TextBoxes на странице имеет содержимое XML/HTML, и это в свою очередь вызывает ошибку выше когда я удалил xml/HTML и протестировал нажатие кнопки... он работал, как ожидалось.

Ответ 4

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

Панель управления → Администрирование → Журнал Windows → Приложение

Ответ 5

Брат этот кусок кода не является решением, просто изменив его на

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            **alert(args.get_error().message.substr(args.get_error().name.length + 2));**
            args.set_errorHandled(true);
        }
    }
</script>

и вы увидите, что ошибка есть, но вы просто не выбрасываете ее в пользовательский интерфейс.

Ответ 6

Это решение также полезно:

Добавьте validateRequest="false" в директиву <%@ Page.

Это связано с тем, что ASP.net проверяет ввод из браузера на наличие опасных значений. Больше информации в этой ссылке

Ответ 7

У меня есть такая же проблема, здесь я даю свою проблему и мое решение, надеясь, что это поможет кому-то:

Следуя рекомендациям других людей, я пошел в журнал сервера (Windows Server 2012 в моем случае):

Панель управления → Администрирование → Просмотр событий

Тогда в левой части:

Журналы Windows → Приложение:

введите описание изображения здесь

В предупреждениях я нашел сообщение с моего сайта, и в моем случае это было вызвано пустой ссылкой:

*Exception type: NullReferenceException 
Exception message: Object reference not set to an instance of an object.*

И, проверяя функцию, описанную в журнале, я обнаружил не инициализированный объект, и это было.

Таким образом, это может быть нулевое ссылочное исключение в коде. Надеюсь, что кто-то найдет это полезным, приветствия.

Ответ 8

Проверьте Application Event Log - моя проблема была в Telerik RadCompression HTTP-модуле, который я отключил в Web.config.

Ответ 9

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

<appSettings>
  <add key="aspnet:MaxHttpCollectionKeys" value="100000" />
</appSettings>

<system.web.extensions>
  <scripting>   
    <scriptResourceHandler enableCompression="false" enableCaching="true"/>       
  </scripting>
</system.web.extensions> 

Ответ 10

@JS5, я также столкнулся с той же проблемой, что и вы: ImageButton вызывает исключения внутри UpdatePanel только на рабочем сервере и в IE. После некоторых исследований я нашел это:

Возникла проблема с ImageButtons и UpdatePanels. Обновление до Там установлен .NET 4.5. Это как-то связано с Microsoft изменили ось x, y кнопки, нажав кнопку "Int" на "Double", чтобы вы могли расскажите, где на кнопке вы нажали и выбрали конверсию ошибка.

Источник

Я использую NetFramework 2.0 и IIS 6, поэтому предлагаемым решением было понизить совместимость IE с добавлением метатега:

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

Я сделал это с помощью метода Page_Load только на странице, которая мне нужна:

Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    Dim tag As HtmlMeta = New HtmlMeta()

    tag.HttpEquiv = "X-UA-Compatible"
    tag.Content = "IE=9"

    Header.Controls.Add(tag)
End Sub

Надеюсь, это поможет кому-то.

Ответ 11

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

Ответ 12

"1- Перейдите в web.config вашего приложения"

"2- Добавить новую запись под < system.web > "

3- Также найдите тег страниц и установите validateRequest = False

Только это работает для меня.!!

Ответ 13

Мы также столкнулись с той же проблемой, и проблема могла быть воспроизведена только на сервере (т.е. не локально, что затрудняло ее исправление, потому что мы не могли отлаживать приложение) и при использовании IE. У нас была страница с панелью обновлений, и внутри этой панели обновления был modalpopupextender, в котором также была панель обновления. Попробовав несколько решений, которые не сработали, мы исправим его, заменив каждую кнопку изображения в modalpopupextender ссылкой, и внутри нее нужно изображение.

Ответ 14

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

в случае визуальной студии любезно перейдите к:

C:\Users\User\Documents\IISExpress\TraceLogFiles\[your project name]\.

расположите файл здесь по дате по убыванию, а затем откройте первый файл.

он будет выглядеть так:

enter image description here

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

enter image description here

Ответ 15

Для тех, кто использует внутренний IIS Visual Studio, попробуйте выполнить следующее:

  • Сгенерировать сообщение об ошибке.
  • Отмените отладчик на дисплее ошибки.
  • Проверьте столбец. Вы должны увидеть "рейз".
  • Дважды нажмите "рейз".
  • Проверьте внутренности параметра 'sender'. Вы увидите свойство _xmlHttpRequest.
  • Откройте свойство "_xmlHttpRequest", и вы увидите свойство "response".
  • Свойство "response" будет иметь фактическое сообщение.

Я надеюсь, что это поможет кому-то там!

Ответ 16

Используйте следующий код ниже внутри панели обновления.

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            args.set_errorHandled(true);
        }
    }
</script>

Ответ 17

Для меня проблема заключалась в том, что я использовал <button> вместо <asp:LinkButton>

Ответ 18

Несколько раз из-за какого-то кода вы получаете теги HTML в текстовом файле, например, я заменял некоторые символы новым тегом BR строки HTML и по ошибке я также заменил его в тексте, который должен отображаться в многострочном текстовое поле, поэтому в моем многострочном текстовом поле был добавлен новый HTML-тег BR в нем, который динамически возникает из-за моей функции замены строки, и я начал получать эту ошибку JavaScript, и поскольку этот код HTML был отображен в текстовом поле, которое было на панели обновления, я запускаю получив эту ошибку, я сделал исправление, и все было в порядке. Поэтому, прежде чем копировать вставку, просмотрите свой код и убедитесь, что все теги закрыты надлежащим образом, и никакие ненужные данные кода не поступают в текстовые поля или выпадающие списки. Эта ошибка всегда возникает из-за плохо сформированных тегов и нерелевантных данных.

Ответ 19

Мое исправление заключалось в том, чтобы удалить любую разметку HTML, которая была в свойстве Text = "" TextBox в моем коде asp.net, внутри панели обновления. Если на странице имеется несколько панелей обновлений, это повлияет на всех, что затрудняет работу над этой панелью. Крис ответил выше, заставив меня найти это, но его очень скрытый ответ, но я считаю очень актуальным, поэтому здесь объясняется ответ.

<asp:TextBox ID="bookingTBox" runat="server" ToolTip="" Width="150px" Text="<Auto Assigned>" CssClass="textboxItalicFormat"></asp:TextBox>

Приведенный выше код даст эту ошибку.

Ниже не будет.

<asp:TextBox ID="bookingTBox" runat="server" ToolTip="" Width="150px" Text="Auto Assigned" CssClass="textboxItalicFormat"></asp:TextBox>

Во втором текстовом поле я удалил < и > из свойства Text = "". Попробуйте это, прежде чем тратить время на добавление строк кода script и т.д.

Ответ 20

Если эта проблема возникает при использовании AsyncFileUploader в iFrame. Ошибка при использовании firefox. Работал в хром просто отлично. Похоже, что либо родительская страница, либо страница iframe загружалась из синхронизации, а родительская страница не могла найти элементы управления на странице iframe. Добавлено простое предупреждение javascript, чтобы сказать, что файл был загружен. Это дало контролерам достаточно времени для загрузки, и поскольку элементы управления были доступны, все загрузилось без ошибок.

Ответ 21

Даже я столкнулся с такой же проблемой, просто прокомментировал панель обновления и отлично работает.

Ответ 22

У меня была эта проблема, когда я обновил свой проект до версии 4.5, а GridView имел пустой шаблон данных. Что-то изменилось, и следующий оператор, который ранее возвращал пустой шаблон данных, теперь возвращал строку заголовка.

GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[0];

Я изменил его ниже, и ошибка исчезла, и GridView начал работать как ожидалось.

GridViewRow dr = (GridViewRow)this.grdViewRoleMembership.Controls[0].Controls[1];

Я надеюсь, что это поможет кому-то.

Ответ 23

Эта проблема для меня была вызвана ошибкой сопоставления базы данных.

Я попытался использовать вызов select() на источнике данных с ошибками в коде. Мои элементы управления находились в панели обновления, и фактическая причина была скрыта.

Обычно, если вы можете временно удалить панель обновления, asp.net вернет более полезное сообщение об ошибке.

Ответ 24

Обязательно поместите тильду и косую черту (~/), когда CDN является корневым каталогом. Я думаю, что это проблема в IIS

Ответ 25

как упоминал мой друг @RaviKumar, одна из причин следующей проблемы заключается в том, что часть данных, переданных из кода в UI, содержит необработанные теги html, которые делают запрос недопустимым, например, я имел textarea и в моем код Я установил его значение по коду ниже

txtAgreement.Text = Data.Agreement

И когда я скомпилировал страницу, я мог видеть сырой тег html внутри textarea, поэтому я изменил textarea на div, на котором работает innerhtml и отображает html (вместо инъекции сырые html-теги в элемент), и это сработало для меня

счастливое кодирование

Ответ 26

<add key="aspnet:MaxHttpCollectionKeys" value="100000"/ >

Добавьте вышеприведенный ключ к Web.config или App.config, чтобы удалить эту ошибку.

Ответ 27

Я получил эту ошибку, когда у меня был ModalPopupExtender в панели обновления... я удалил мой код. Я обнаружил, что указанная выше ошибка вызвана из-за обновления updatemode условно... поэтому я изменяю ее всегда, тогда проблема решена.

Ответ 28

Это отлично работает в моем коде.. я решил свою проблему.. действительно

Добавьте ниже код в файл web.config.

<system.web>
    <httpRuntime executionTimeout="999" maxRequestLength="2097151"/>
</system.web>

Ответ 29

Ответ для меня заключался в том, чтобы зафиксировать элемент управления gridview, в котором было поле шаблона, в котором был раскрывающийся список, который был загружен количеством выбираемых элементов чудовищного - я заменил DDL на поле метки, данные которого генерируемый функцией. (я изначально собирался разрешить редактирование gridview, но переключился на возможность редактирования на отдельной панели, отображающей DDL для этого поля только для этой записи). надеюсь, это может помочь кому-то.