web-dev-qa-db-fra.com

Sys.WebForms.PageRequestManagerServerErrorException: Une erreur inconnue s'est produite lors du traitement de la demande sur le serveur. "

J'ai quelques panneaux de mise à jour et onglets jquery sur la page. Et aussi je charge quelques contrôles utilisateur sur les panneaux de mise à jour. Après que l'utilisateur attende quelques minutes (pas vérifié l'heure environ 40 minutes). lorsque l'utilisateur envoie une demande à partir du bouton d'envoi, il donne l'erreur ci-dessous? 

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

Je ne peux pas retracer ce problème à résoudre. Mais j'en suis sûre. Ceci est causé par Ajax. Gourous, si vous connaissez la solution. S'il vous plaît, faites-moi savoir.

32
James123

Ce problème se produit parfois lorsque vous avez un contrôle enregistré en tant que AsyncPostbackTrigger dans plusieurs panneaux de mise à jour.

Si ce n'est pas le problème, essayez d'ajouter ce qui suit juste après la déclaration du gestionnaire de 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>

Quelques solutions supplémentaires sont discutées ici: http://forums.asp.net/t/1066976.aspx/9/10

28
James Johnson

J'ai eu ce problème et j'ai passé des heures à essayer de le résoudre.

La solution cochée comme réponse ne résoudra pas l'erreur, mais la gérera.

La meilleure approche consiste à vérifier les fichiers journaux IIS. L'erreur devrait être présente. Il semble que le panneau de mise à jour encapsule la véritable erreur et l’émet comme une "erreur javascript".

Par exemple, mon erreur est que j'ai oublié de créer une classe [Serializable]. Bien que cela fonctionne correctement localement, il ne fonctionnait pas lorsqu'il était déployé sur le serveur.

27
Scriptworks

J'ai eu cette erreur lorsque mon bouton dans GridView était dans un UpdatePanel ... lors de la duplication de mon code, j'ai constaté que l'erreur ci-dessus est due à une autre erreur interne "Une valeur Request.Form potentiellement dangereuse a été détectée par le client". 

Enfin, j'ai découvert qu'un de mes TextBox sur la page avait un contenu XML/HTML, ce qui provoquait à son tour l'erreur ci-dessus Lorsque j'ai supprimé le xml/HTML et testé le clic du bouton ... cela a fonctionné comme prévu. 

8
RaviKumar

Ne pas rouvrir un ancien fil de discussion, mais cette solution est également utile.

Ajoutez validateRequest="false" dans la directive <%@ Page

En effet, ASP.net examine les entrées du navigateur pour rechercher des valeurs dangereuses. Plus d'infos dans ce link

5
Cdeez

Brother ce morceau de code n'est pas une solution, il suffit de le changer pour

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

et vous verrez que l'erreur est là mais vous ne la jetez pas sur l'interface utilisateur 

5
user1341446

J'ai le même problème, ici je donne mon problème et ma solution en espérant que cela aiderait quelqu'un:

Suite à la recommandation d'autres personnes, je suis allé au journal du serveur (Windows Server 2012 dans mon cas) dans:

Panneau de configuration -> Outils d'administration -> Observateur d'événements

Puis dans le côté gauche:

Journaux Windows -> Application:

 enter image description here

Dans les avertissements, j'ai trouvé le message de mon site et dans mon cas, cela était dû à une référence nulle:

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

Et en vérifiant la fonction décrite dans le journal, j'ai trouvé un objet non initialisé et c'était tout.

Il pourrait donc s'agir d'une exception de référence nulle dans le code . espérons que quelqu'un trouvera cela utile, salutations.

3
JCO9

J'ai également fait face au même problème, et aucun d'entre eux n'a fonctionné. Dans mon cas, cela a été corrigé en ajoutant ces lignes dans le fichier de configuration.

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

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

@ JS5, j'ai également rencontré le même problème que vous: ImageButton provoquant des exceptions dans UpdatePanel uniquement sur le serveur de production et IE. Après quelques recherches, j'ai trouvé ceci:

Il y a un problème avec ImageButtons et UpdatePanels. La mise à jour à .NET 4.5 est corrigé ici. Cela a quelque chose à voir avec Microsoft changé l’axe x, y d’un bouton, passez de Int à Double afin que vous puissiez dire où sur le bouton sur lequel vous avez cliqué et qui lance une conversion Erreur.

La source

J'utilise NetFramework 2.0 et IIS 6, la solution suggérée consistait donc à rétrograder la compatibilité IE en ajoutant une balise méta:

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

Je l'ai fait via la méthode Page_Load uniquement sur la page dont j'avais besoin pour:

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

J'espère que ça aide quelqu'un.

2
Santiago Trejo

Vérifiez votre ApplicationEvent Log - mon problème était le module HTTP Telerik RadCompression que j'ai désactivé dans le fichier Web.config. 

2
PeterX

"1- Allez sur le web.config de votre application"

"2- Ajouter une nouvelle entrée sous <system.web>"

3- Recherchez également la balise des pages et définissez validateRequest = False

Seulement ça marche pour moi. !!

1
Ven

Pour ceux qui utilisent le IIS interne de Visual Studio, essayez ce qui suit:

  1. Générez le message d'erreur.
  2. Casser le débogueur à l'affichage d'erreur.
  3. Vérifiez la pile d'appels. Vous devriez voir 'augmenter'.
  4. Double-cliquez sur «relancer».
  5. Vérifiez les paramètres internes du paramètre 'sender'. Vous verrez une propriété '_xmlHttpRequest'.
  6. Ouvrez la propriété '_xmlHttpRequest' et vous verrez une propriété 'réponse'.
  7. La propriété 'réponse' aura le message réel.

J'espère que cela aide quelqu'un là-bas!

1
Russ Rahn

Nous avons également rencontré le même problème, qui ne pouvait être reproduit que sur le serveur (c’est-à-dire pas localement, ce qui compliquait encore la tâche, car nous ne pouvions pas déboguer l’application) et lors de l’utilisation d’IE. Nous avions une page avec un panneau de mise à jour et dans ce panneau de mise à jour un modalpopupextender, qui contenait également un panneau de mise à jour. Après avoir essayé plusieurs solutions qui ne fonctionnaient pas, nous avons résolu le problème en remplaçant chaque imagebutton dans modalpopupextender par un lien, et l’image requise.

1
JS5

J'ai eu le même problème, quand j'ai essayé un moyen de le résoudre, j'ai découvert que le panneau de mise à jour causait ce problème. En fonction de mes besoins, je pourrais supprimer le panneau de mise à jour et résoudre le problème. C'est donc une solution possible au problème. 

1
Hash

J'ai eu cette erreur quand j'avais ModalPopupExtender dans le panneau de mise à jour ... en insérant mon code, j'ai constaté que l'erreur ci-dessus est due au fait que updatepanel updatemode est conditionnel ... je le change donc toujours, le problème est résolu. 

0
Deepak_007

Mon correctif pour cela consistait à supprimer tout balisage HTML se trouvant dans la propriété Text = "" d'une zone de texte dans mon code asp.net, dans un panneau de mise à jour. Si vous avez plusieurs panneaux de mise à jour sur une page, cela les affectera tous, ce qui compliquera la tâche de savoir quel panneau présente le problème. La réponse de Chris ci-dessus m'amène à trouver ceci, mais sa réponse est très cachée, mais je pense que c'est une réponse très pertinente. Voici donc une réponse expliquée.

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

Le code ci-dessus donnera cette erreur.

Le ci-dessous ne sera pas.

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

Dans le deuxième code de zone de texte, j'ai supprimé les propriétés <et> de la propriété Text = "". Essayez ceci avant de passer du temps à ajouter des lignes de code de script, etc.

0
FlashTrev

Pour moi, le problème était que j'utilisais un <button> au lieu d'un <asp:LinkButton>

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

Ajoutez la clé ci-dessus à Web.config ou App.config pour supprimer cette erreur.

0
Akshay

Parfois, à cause de certains codes, des balises HTML sont insérées dans un fichier texte, comme si je remplaçais certains caractères par des balises HTML de nouvelle ligne et que, par erreur, je les remplaçais également dans le texte censé être affiché dans une zone de texte multiligne. ma zone de texte multiligne contenait une nouvelle balise HTML de ligne BR qui venait dynamiquement à cause de ma fonction de remplacement de chaîne et j'ai commencé à obtenir cette erreur JavaScript. Ce code HTML étant affiché dans une zone de texte située dans un panneau de mise à jour, je commence à recevoir cette erreur. alors j'ai fait la correction et tout allait bien. Donc, avant de copier quoi que ce soit, veuillez regarder votre code et voir que toutes les balises sont bien fermées et qu'aucune donnée de code non pertinente ne parvient aux zones de texte ou aux listes déroulantes. Cette erreur est toujours due à des balises mal formées et à des données non pertinentes.

0
user3004710

Ce n'est pas le vrai problème, si vous voulez voir pourquoi cela se produit, veuillez consulter le fichier journal des erreurs d'IIS.

en cas de studio visuel, veuillez naviguer vers:

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

arrangez le fichier ici en ordre décroissant, puis ouvrez le premier fichier.

ça va ressembler à:

enter image description here

maintenant, faites défiler vers le bas pour voir le GENERAL_RESPONSE_ENTITY_BUFFERit est le problème réel. maintenant le résoudre le problème ci-dessus va résoudre automatiquement.

enter image description here

0
Abhishek Suman

Cela fonctionnait bien dans mon code .. j'ai résolu mon problème .. vraiment

Ajoutez le code ci-dessous dans web.config fichier.

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

J'avais ce problème lorsque j'ai mis à niveau mon projet vers la structure 4.5 et que GridView avait un modèle de données vide. Quelque chose a changé et la déclaration suivante qui renvoyait précédemment le modèle de données vide renvoyait maintenant la ligne d'en-tête.

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

Je l'ai changé en bas et l'erreur a disparu et le GridView a commencé à fonctionner comme prévu.

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

J'espère que ça aidera quelqu'un.

0
Harini

Assurez-vous de mettre un tilde et une barre oblique (~ /) lorsque CDN est le répertoire racine. Je pense que c'est un problème dans IIS

0
Jok Garcia

Ce problème pour moi était dû à une erreur de mappage de base de données.

J'ai essayé d'utiliser un appel select () sur une source de données avec des erreurs dans le code derrière. Mes contrôles se trouvaient dans un panneau de mise à jour et la cause réelle était masquée.

Généralement, si vous pouvez supprimer temporairement le panneau de mise à jour, asp.net renverra un message d'erreur plus utile.

0
Alex Boutin Flegel

Avait ce problème lors de l'utilisation AsyncFileUploader dans un iFrame. Une erreur est survenue lors de l'utilisation de Firefox. Travaillé en chrome très bien. Il semblait que le chargement de la page parent ou de la page iframe n'était pas synchronisé et que la page parent ne trouvait pas les contrôles sur la page iframe. Ajout d'une alerte javascript simple pour dire que le fichier a été téléchargé. Cela a donné aux contrôles assez de temps pour se charger et, puisque les commandes étaient disponibles, tout se chargeait sans erreur. 

0
user3246423

Utilisez le code suivant ci-dessous dans updatepanel.

<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

comme mon ami @RaviKumar a mentionné ci-dessus, l'une des raisons du problème suivant est qu'une partie des données transférées du code à l'interface utilisateur contient des balises html brutes qui rendent la requête invalide, par exemple, j'avais un textarea et j'avais défini sa valeur dans le code par code ci-dessous 

txtAgreement.Text = Data.Agreement

Et lorsque j'ai compilé la page, j'ai pu voir une balise html brute dans textarea. J'ai donc remplacé textarea par div sur lequel innerhtml fonctionne et rend le html (au lieu d'injecter des balises html brutes dans l'élément) et cela a fonctionné pour moi.

bonne codage

0
Code_Worm

la réponse pour moi était de réparer un contrôle gridview qui contenait un champ de modèle avec une liste déroulante chargée avec un monstrous quantité d'éléments sélectionnables - j'ai remplacé le DDL par un champ d'étiquette dont les données sont générées à partir d'une fonction. (À l'origine, j'allais autoriser l'édition de gridview, mais je suis passé à autoriser les éditions sur un panneau séparé affichant le DDL pour ce champ uniquement pour cet enregistrement). J'espère que cela pourrait aider quelqu'un.

0
user84867