it-roy-ru.com

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]

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

32
James123

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

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

<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

28
James Johnson

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

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

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

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

27
Scriptworks

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

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

8
RaviKumar

Не открывать старую ветку, но это решение тоже полезно

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

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

5
Cdeez

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

<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>

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

5
user1341446

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

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

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

Тогда с левой стороны:

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

 enter image description here

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

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

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

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

3
JCO9

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

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

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

@ 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

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

2
Santiago Trejo

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

2
PeterX

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

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

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

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

1
Ven

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

  1. Создайте сообщение об ошибке.
  2. Сломайте отладчик на дисплее ошибок.
  3. Проверьте стек вызовов. Вы должны увидеть «поднять».
  4. Дважды щелкните «поднять».
  5. Проверьте внутренние параметры параметра «отправитель». Вы увидите свойство _xmlHttpRequest.
  6. Откройте свойство '_xmlHttpRequest', и вы увидите свойство 'response'.
  7. Свойство response будет иметь фактическое сообщение.

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

1
Russ Rahn

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

1
JS5

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

1
Hash

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

0
Deepak_007

Мое исправление для этого состояло в том, чтобы удалить любую разметку 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 = "". Пожалуйста, попробуйте, прежде чем тратить время на добавление строк кода скрипта и т.д.

0
FlashTrev

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

0
Hervé Donner
<add key="aspnet:MaxHttpCollectionKeys" value="100000"/ >

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

0
Akshay

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

0
user3004710

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

в случае визуальной студии, пожалуйста, перейдите по ссылке:

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

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

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

enter image description here

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

enter image description here

0
Abhishek Suman

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

Добавьте следующий код в web.config file.

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

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

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

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

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

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

0
Harini

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

0
Jok Garcia

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

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

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

0
Alex Boutin Flegel

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

0
user3246423

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

<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>
0
yogesh Kumar

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

txtAgreement.Text = Data.Agreement

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

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

0
Code_Worm

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

0
user84867